绑定不在较新版本的Ember.js中触发观察者

时间:2012-11-27 16:22:22

标签: javascript ember.js

我最近从Ember.js 0.9.8.1更新到Ember.js 1.0-pre2。现在我发现在设置绑定时不会触发观察者。

以下是一个说明问题的小例子:

模板:

<script type="text/x-handlebars">
    {{view App.SimpleView textBinding="App.text"}}
</script>​

代码:

App = Ember.Application.create();
App.text = "new";

App.SimpleView = Ember.View.extend({
    text: 'old',
    fired: 'no',
    template: Ember.Handlebars.compile('Text: {{view.text}}. Observer fired: {{view.fired}}'),

    textObserver: function() {
        this.set('fired', 'yes');
    }.observes('text')
});

使用Ember.js 0.9.8.1它按预期工作,打印 Text:new。观察者被解雇:是,(fiddle)但是在1.0-pre2中,观察者没有被解雇(fiddle)。

这个小像我的错误,但在报告之前,我想问一下API中的某些内容是否发生了变化。

1 个答案:

答案 0 :(得分:2)

嗯,在与Kristofor Selden讨论之后,0.9.8.1中的行为是一个错误。 在1.0.pre-2中,在您的小提琴中,当实例化视图时,App.text已经设置为“new”,这是观察者未被触发的预期行为。