javascript - Ember Array 观察器不工作

标签 javascript ember.js observers

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,但观察者函数永远不会被触发。

最佳答案

使用MutableArray#replace :

 this.get('myArray').replace(1, 1, [3]);

这意味着:从索引 1 开始,用 3 替换 1 元素。这会触发定义为 myArray.[] 的所有必要依赖项和观察者。

令我惊讶的是您的代码没有吐出 ReferenceError,因为您指的是 someFunction 中未声明的变量 myArray

有一个方便的功能,我目前无法确定。另外,请注意观察者可能不会在初始化期间触发。

关于javascript - Ember Array 观察器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32469910/

相关文章:

javascript - 无法调用函数,因为 $rootScope 未定义

javascript - Amcharts "TypeError: this.chart.zoomToDates is not a function"

javascript - Ember 得不到某些属性

javascript - Ember cli 应用程序具有不同的适配器类型?

javascript - 如何将 JavaScript 对象转换为 Restful GET 参数以附加在 API URL 末尾?

javascript - 引用错误 : exit is not defined at repl:1:1 (in node. js)

ember.js - 在 Emberjs 中为链接传递参数

Swift observevalueforkeypath + loadedTimeRanges 只调用有限的时间

android - 当应用程序来自后台时总是触发观察者

ios - 从 subview 中删除观察者