Emberjs-观察一个计算的属性



为什么以下代码不是等效的?

计算出:

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

在第一个中, computed只是一个getter。因此,如果您不在模板或其他地方在更改时尽快使用computed,则不会通过更改selected来调用。

,但在第二个中,别名也创建了设定器。因此,如果您更改selected,则computed在此之后更改。

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

最新更新