Angular4数据表-属性'$键';不存在

Angular4数据表-属性'$键';不存在,angular,Angular,我在这里使用Angular 4数据表,这是我在ProductsComponent.html中的代码: <data-table [items]="items" [itemCount]="itemCount" (reload)="reloadItems($event)"> <data-table-column [property]="'title'" [header]="'Title'" [sortable]="true" [resizable]="true">&l

我在这里使用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>

{{item.price}货币:'USD'}
编辑

datatable可以很好地呈现所有数据,浏览器不会显示任何错误,编译过程中也不会显示任何错误。但是,当我运行一个ng build--prod时,我看到以下错误消息,生成失败。类型“ProductsComponent”上不存在属性“$key”。我很难调试它,因为我在测试时没有看到错误-有什么想法吗?

可能只是在component.ts文件中的变量“$key”上没有设置“public”

这部分代码:
[属性]=“$key”

一旦[]中包含属性/属性,将立即计算分配给它的值,例如:

  • [property]=“a string”
    计算结果为“a string”
  • [property]=“$key”
    查找名为$key的变量,以便将$key的值绑定到属性
您可能缺少这样的引号
[property]=“$key”


有更多信息。

属性定义中的$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>

编辑

[$key]是由datatable定义的,我不会在任何地方显式声明它。如果您确定它是由datatable定义的,请查看您的前2个数据表列,也许您应该通过这样做[$key],将$key用引号括起来,例如['$key']您正在尝试评估$key的值,这就是我最初认为您在component.ts文件中将$key声明为变量的原因,请下次提供一个plunker,以便我们可以测试您的代码