【问题标题】:Binding not firing observer in newer versions of Ember.js在较新版本的 Ember.js 中绑定不触发观察者
【发布时间】:2012-11-15 07:54:24
【问题描述】:

我最近从 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 中的某些内容是否发生了变化。

【问题讨论】:

    标签: javascript ember.js


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-07-28
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      相关资源
      最近更新 更多