我正在使用Ember 1.13.15
。
我有一个对象数组(包含嵌套对象),该对象数组使用每个循环进行迭代,并传递给子组件。
//parent.hbs
{{#each configData as |item index|}}
{{ my-child
childId=(concat item.name index)
childName= item.name
childColor=item.color
childEnabled=item.enabled
actionUpdateParent='action1'
}}
以及组件内部的以下观察者
//parent.js
configDataObserver: function(){
var configData = this.get('configDataFromSource');
this.set( 'configData' , configData );
}.observes('configDataFromSource'),
现在,每当configData
数组中的任何对象被更新时,each
循环都会遍历整个数组,并且所有子组件都将被重绘,从而导致严重的性能问题。
我发现了类似的问题,但没有一个提供明确的解决方案。请帮忙。
答案 0 :(得分:4)
我认为您需要在每个密钥中设置密钥。
赞:
https://www.emberjs.com/api/ember/release/classes/Ember.Templates.helpers/methods/if?anchor=each
{{#each configData key="name" as |item index|}}