【发布时间】:2018-11-19 06:23:05
【问题描述】:
我正在使用*ngFor 来迭代一些这样的数据:
<div *ngFor="let d of [1, 2, 3]"> {{d}} </div>
一切都很好,我得到了预期的结果:
<div> 1 </div>
<div> 2 </div>
<div> 3 </div>
然后,想知道是不是用函数代替{{d}},所以写了一个函数:
protected logAndReturn(item) {
console.log(item);
return item;
}
我用过:
<div *ngFor="let d of [1, 2, 3]"> {{logAndReturn(d)}} </div>
我得到了与第一个代码相同的渲染 HTML 结果,但控制台输出不是我预期的输出。 控制台输出:
1
2
3
1
2
3
Angular is running in the development mode. Call enableProdMode() to enable the production mode.
1
2
3
1
2
3
添加的函数现在被调用了 12 次(每个项目 4 次)
这是你可以自己测试的代码:jsfiddle
我的代码错了吗?有什么解决方案可以防止这些额外的电话吗?为什么会发生这种情况,谁能解释一下?
【问题讨论】:
标签: angular ngfor angular-components angular-component-life-cycle