Свойство ResultJson не существует для типа «Book []» - PullRequest
0 голосов
/ 15 мая 2018

Я использую angular 4 и получаю эту ошибку при запуске ng build --prod.Он не выдает никаких ошибок при запуске ng-serve и работает нормально.ResultJson - мой файл JSON.Если я удаляю ResultJson, он не показывает никаких данных в интерфейсе пользователя.Помощь будет высоко ценится.Спасибо.

Вот мой HTML-файл.

<div *ngIf="books?.ResultJson.length === 0">
    <h4>no result found</h4>
</div>

<div *ngIf="books?.ResultJson.length > 0">
    <form>
        <table>
            <tr>
                <td><h4>Name</h4></td>
                <td><h4>Id</h4></td>
            </tr>
            <tr *ngFor="let b of book?.ResultJson">
                <td>{{p.name}}</td>
                <td>{{p.id}}</td>
            </tr>
        </table>
    </form>

это массив в моем файле машинописи

books: Book[] = [];

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Это проблема с AOT.Вместо ng-build --prod , если я запускаю ng build --prod --aot false , он работает нормально.Не знаю, какое именно решение, но оно заставило мой код работать нормально.

0 голосов
/ 15 мая 2018

Проблема с вопросительным знаком:> ? <Не используйте <code>*ngIf="books?.Resu..., вместо этого используйте *ngIf="books && books.ResultJson.length > 0" или создайте метод booksExists(), который возвращает true / false для if (то же самое для book).Это, вероятно, связано с AoT (Ahead of Time - вероятно, используется в производственной компиляции) - я нашел эту информацию в этой угловой структуре .

...