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

Posted

技术标签:

【中文标题】如何在 ngFor 中实例化和使用后续数组?【英文标题】:How to instantiate and use subsequent array inside ngFor? 【发布时间】:2018-11-03 15:00:27 【问题描述】:
*ngFor="let arr = ['foo', 'bar', 'sla']; let item of arr; let i = index;"

为什么在let item of arr; 之前提供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

【问题讨论】:

你可以试试这个*ngFor="let item of ['foo', 'bar', 'sla']; let i = index;" @Sanoj_V 但这意味着我无法获得该数组的长度,因为它是匿名的。 你可以通过这样做得到数组的长度:*ngFor="let item of ['foo', 'bar', 'sla'] as arr; let i = index;" in your html arr.length 好的,可以发个答案吗? 是的,当然@li。 x 【参考方案1】:

您需要像往常一样实例化您的数组,但之后您需要添加as,这将允许您在 html 中对数组进行引用:

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

然后你就可以按预期说arr.length

【讨论】:

以上是关于如何在 ngFor 中实例化和使用后续数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 Nib 的情况下实例化和调用 UIView 子类

使用 NSLayoutConstraint 实例化和设置 UIButton 子类的大小

SKSpriteNode 的正确子类化和实例初始化

coq 中的存在实例化和泛化

在 MVC 中实例化和处置 DbContext 的最佳方法是啥?

HttpClient 实例化和请求都需要使用 [重复]