如何在ngFor中实例化和使用后续数组?

时间:2018-05-24 11:36:43

标签: javascript html arrays angular typescript

*ngFor="let arr = ['foo', 'bar', 'sla']; let item of arr; let i = index;"

为什么在arr之前提供let item of arr;的实例化会导致[object Object]的异常,或者为什么我不能这样做?

我不想做let item of [...]的原因是因为我还要把这些信息放到我不想做的.ts文件中。

我希望能够从我的html中返回并引用这个数组,所以我需要一种方法来引用声明的数组,而无需在数据文件中实例化它。

堆栈跟踪以供参考:

ERROR 
Error: [object Object]
Stack trace:
resolvePromise@webpack-internal:///./node_modules/zone.js/dist/zone.js:795:31
resolvePromise@webpack-internal:///./node_modules/zone.js/dist/zone.js:766:17
scheduleResolveOrReject/<@webpack-internal:///./node_modules/zone.js/dist/zone.js:844:17
ZoneDelegate.prototype.invokeTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:425:17
onInvokeTask@webpack-internal:///./node_modules/@angular/core/esm5/core.js:4956:24
ZoneDelegate.prototype.invokeTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:424:17
Zone.prototype.runTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:192:28
drainMicroTaskQueue@webpack-internal:///./node_modules/zone.js/dist/zone.js:602:25

1 个答案:

答案 0 :(得分:5)

您需要像通常那样实例化数组,但之后您需要添加as,这将允许您在html中引用数组:

*ngFor="let item of ['foo', 'bar', 'sla'] as arr; let i = index;"

之后,您可以按预期说出{{arr.length}}