我正在使用此处https://github.com/MIt9/angular-4-data-table的Angular 4数据表,这是我在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 build --prod 时,我看到以下错误消息,并且构建失败。物业&#39; $ key&#39;类型&#39; ProductsComponent&#39;上不存在。我很难调试这个,因为我在测试时没有看到任何错误 - 这里有什么想法吗?
答案 0 :(得分:0)
属性定义中的$ key需要用引号括起来,因为我没有显式引用我的组件中的属性,而是来自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>
答案 1 :(得分:-2)
可能只是在component.ts文件中的变量'$ key'上没有设置'public'的情况
这部分代码:
[property]="$key"
只要您在[]中包含属性/属性,就会评估分配给它的值,例如
[property] = "'a string'"
评估为'字符串'[property] = "$key"
查找名为$ key的变量,以便将$ key的值绑定到property 您可能错过了[property]="'$key'"
Angular Docs有更多相关信息。