我始终认为.observes('someProperty')
和.property('someProperty')
的工作原理完全相同,只是前者用于触发函数调用,后者用于保持对象属性为最新。计算vs观察Ember中的控制器
但现在我遇到了问题。我的控制器代码如下所示:
_logChange: function(){
console.log('model array observer fired');
}.observes('[email protected]'),
statsData: function(){
console.log('statsData being updated');
...
return someArray;
}.property('[email protected]')
观察员和计算性能都手表的型号@每个但出于某种原因,在每一个模型变化观测火灾和财产只更新两次,然后神秘地会耗尽。statsData
在初始页面加载时计算一次,并且在第一次路径转换时计算一次,然后在这之后,没有任何转换(其基础model
中的更改)会影响转换。
这是怎么回事?他们不应该以同样的方式回应变化吗?
请注意,我的上午使用我的模板中的statsData
属性。
我想补充一点,我没有在'values'的计算属性中定义的setter逻辑,这就是为什么计算的属性被打破;它被香草JS阵列完全覆盖。记得,在计算属性中设置逻辑! – IGNIS 2015-02-19 16:14:41