EmberJS - 观察计算属性

时间:2017-03-09 14:22:35

标签: javascript ember.js

为什么以下代码不相同?

用计算:

computed: Ember.computed('selected', function() {
    console.log('computed');
    return this.get('selected');
}),

observer1: Ember.observer('computed', function() {
    console.log('observer1');
}),

observer2: Ember.observer('selected', function() {
    console.log('observer2');
}),

使用别名:

computed: Ember.computed.alias('selected'),

observer1: Ember.observer('computed', function() {
    console.log('observer1');
}),

observer2: Ember.observer('selected', function() {
    console.log('observer2');
}),

第一张只打印observer2,第二张打印observer1observer2

1 个答案:

答案 0 :(得分:1)

在第一个中,computed只是一个吸气剂。因此,如果您不在模板或其他地方使用computed来对更改做出反应,则不会通过更改selected来调用它。

但在第二个中,别名也会创建setter。因此,如果您更改selectedcomputed之后会很快更改。

如果您在模板的第一个中使用computed,则会得到相同的结果。

相关问题