EmberJS计算属性getter无限循环

时间:2016-11-03 21:48:27

标签: ember.js

我有一个计算属性,并希望通过get / set语法跟踪它的最新值:

myProperty: Ember.computed({
    get: function () {
        ?
    },
    set: function (key, value) {
        let currentValue = this.get('myProperty');

        this.set('oldMyProperty', currentValue);
        return value;
    }
})

但老实说,我不知道如何处理吸气剂。调用this.get('myProperty')将导致无限循环。但是,仅使用this.myProperty并不够,只返回计算属性本身,而不是值。有没有办法可以省略getter所以它只是解析为当前值?

通过松弛与ember社区交谈后,他们的建议是保持旧的和新的价值(可能使用ES6 Symbols以避免意外引用它们)。我只是好奇是否有一种更简单的方法让get默认为正常查找。

这就是我的工作:
https://guides.emberjs.com/v2.3.0/object-model/computed-properties/

1 个答案:

答案 0 :(得分:2)

get返回初始值。如果没有人设定这个值,该怎么办? nullundefinedget只会运行一次。从set返回的结果将被缓存并使用。

我为此案例创建了twiddle

sample来自数据网格插件。为了避免双向绑定,我们在这个数据网格中编写了这样一个计算属性。

相关问题