export default Ember.Object.extend({
myArray: Ember.A([null,null,null]),
someFunction: function () {
console.log('i am triggered');
myArray[1] = 3;
}.on('init'),
hasValue: Ember.observer('myArray.[]', function () {
console.log('i am changed');
})
})
这里的错误是什么?虽然总是达到someFunction
,但观察者函数永远不会被触发。
答案 0 :(得分:3)
this.get('myArray').replace(1, 1, [3]);
这意味着:从索引1开始,用1替换1个元素。这将触发定义为myArray.[]
的所有必要依赖项和观察者。
我很惊讶您的代码没有吐出ReferenceError,因为您在myArray
内引用了未声明的变量someFunction
。
这是一个方便的功能,我现在无法指责。另外,请注意观察者在初始化期间可能不会触发。