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
,但观察者函数永远不会被触发。
最佳答案
this.get('myArray').replace(1, 1, [3]);
这意味着:从索引 1 开始,用 3 替换 1 元素。这会触发定义为 myArray.[]
的所有必要依赖项和观察者。
令我惊讶的是您的代码没有吐出 ReferenceError,因为您指的是 someFunction
中未声明的变量 myArray
。
有一个方便的功能,我目前无法确定。另外,请注意观察者可能不会在初始化期间触发。
关于javascript - Ember Array 观察器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32469910/