'Book []'类型中不存在属性'ResultJson'

时间:2018-05-15 12:05:19

标签: json angular angular4-forms angular4-httpclient

我正在使用angular 4并在运行build build时遇到此错误--prod。它没有给出运行ng-serve的任何错误,并且工作正常。 ResultJson是我的JSON文件。如果我删除ResultJson,它不会在UI上显示任何数据。将非常感谢帮助。谢谢。

这是我的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 :(得分:2)

问题在于问号:&gt; ?&lt;不要使用*ngIf="books?.Resu...而是使用*ngIf="books && books.ResultJson.length > 0"或创建方法booksExists(),它会为if返回true / false(book也是如此)。这可能与AoT有关(提前 - 可能在生产编译中使用) - 我在this angular-framework中找到了这些信息。

答案 1 :(得分:0)

它是AOT的问题。如果我运行 ng build --prod --aot false ,而不是 ng-build --prod ,它可以正常工作。不知道什么是确切的解决方案,但它使我的代码工作正常。