Angular4 DataTable - Property' $ key'不存在

时间:2018-02-06 05:48:54

标签: angular

我正在使用此处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;上不存在。我很难调试这个,因为我在测试时没有看到任何错误 - 这里有什么想法吗?

2 个答案:

答案 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有更多相关信息。