我正在使用https://github.com/mit9/angular-4-data-table的Angular 4 DataTable,这是我的productscomponent.html中的代码:
<data-table [items]="items" [itemCount]="itemCount"
(reload)="reloadItems($event)">
<data-table-column [property]="'title'" [header]="'Title'" [sortable]="true" [resizable]="true"></data-table-column>
<data-table-column [property]="'price'" [header]="'Price'" [sortable]="true" [resizable]="true">
<ng-template #dataTableCell let-item="item">
{{ item.price | currency:'USD'}}
</ng-template>
</data-table-column>
<data-table-column [property]="$key">
<ng-template #dataTableCell let-item="item">
<a [routerLink]="['/admin/products/', item.$key]">Edit</a>
</ng-template>
</data-table-column>
</data-table>
数据表使所有数据都很好,浏览器没有显示任何错误,并且在 ng服务过程中的编译也不显示。但是,当我运行 ng构建时-prod 时,我会看到以下错误消息,并且构建失败。属性" $ key"在类型" productsComponent"上不存在。我很难调试此问题,因为我在测试时看不到错误 - 这里发生了什么事?
属性定义中的$键需要用引号包裹,因为我不是从我的组件中明确引用属性,而是从json对象引用的字符串属性。
<data-table-column [property]="'$key'">
<ng-template #dataTableCell let-item="item">
<a [routerLink]="['/admin/products/', item.$key]">Edit</a>
</ng-template>
</data-table-column>
它可能只是一个在component.ts file
中未在变量'$键上设置'public'的情况您代码的这一部分: [property]="$key"
一旦您拥有[]中包含属性/属性,将评估分配给其的值,例如。
-
[property] = "'a string'"
评估"字符串" -
[property] = "$key"
寻找一个名为$键的变量,以便将$键的值绑定到属性
您可能缺少诸如[property]="'$key'"
Angular Docs有更多信息。