这是我的问题所在:http://emberjs.jsbin.com/ruwet/8/edit?html,js,console,output4
我在数组控制器上有一个简单的过滤属性:
import Ember from 'ember';
export default Ember.ArrayController.extend({
activeEncodes: function() {
return this.filterBy('model', 'isActive');
}.property('model.@each.isActive');
});
我已连接到websocket并使用
更新我的商店中的编码store.store.push('encode', data);
即使它只是更新我的数据(progress
)上的某个属性,也会重新计算activeEncodes
。这导致我的模板中出现了一些视觉混乱。
如果我使用model.@each.id
,它不会重新计算,但任何其他属性似乎都会触发CP重新计算(即使该属性没有更改)。
知道为什么会这样吗?
答案 0 :(得分:1)
按下它会导致整个模型无效。然后,这被认为是一个新模型,可以激发任何观察者观察该模型上的任何东西(因为它将其视为新模型)。它也与Ember data model reload causes item in {{each}} to be removed/inserted back - losing current state切线相关。
id
可能是一个特例,我认为它超出了模型底层属性的范围(同样的原因是你没有在模型上定义id)。我只是猜测它。