代码之家  ›  专栏  ›  技术社区  ›  li x

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

  •  1
  • li x  · 技术社区  · 6 年前
    *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 回复  |  直到 6 年前
        1
  •  5
  •   li x    6 年前

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

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

    然后你可以说 {{arr.length}} 如预期。