我的Angular应用程序存在一个奇怪的问题。鉴于此组件:
和这个模板:
页面将尝试永久加载,直到Chrome最终提示我杀死该标签。
如果不是getDataForMonth(month)
而是home.component.ts
只有一个名为monthData
的数据对象,然后提供[data]
"monthData"
在以下情况下它也可以正常工作:
home.component.ts
中有一个方法,描述为hi() {}
和
然后在我的HTML中提供[data]
hi()
。home.component.ts
中有一个方法,描述为hi() {return "hey";}
和
然后在我的HTML中提供[data]
hi()
。home.component.ts
中有一个方法,描述为hi(month) {return month;}
和
然后在我的HTML中提供[data]
hi(month)
。 getDataForMonth()
有什么可以打破这个?这里有一些我不知道的限制吗?是否有可能是与getDataForMonth()
无关的其他问题?
答案 0 :(得分:3)
出于性能原因,您需要在* ngFor中预先计算函数调用。 将console.log添加到getDataForMonth()方法,以查看angular调用此函数的频率。 好的方法是每个月创建一个包含函数结果的数组并迭代它。
答案 1 :(得分:1)
“不要在绑定中使用函数。您的函数将被调用 每个变化检测周期。和角度在开发模式下运行x2周期“
意味着永远不要使用{{getDataForMonth()}}它会降低您的性能和错误的编码方式。
您可以尝试这样
在* ngFor渲染之前创建完整的Object并传递给* ngFor