notifyPropertyChange不通知绑定的属性链



我有一个对象更新了,但ember无法注意到更改,因为它正在更新嵌套属性。我通过调用notifyPropertyChange让它知道实际上已经发生了更改。但是,我的父视图没有收到其绑定属性更改的通知。

示例:http://emberjs.jsbin.com/qesemahi/3/edit


我有一个糟糕的破解方法来解决这个问题,但我希望有一个原因是ember没有通知整个绑定链。当前我有一个错误的克隆对象:http://emberjs.jsbin.com/qesemahi/4/edit

因为数据是组件内部的引用,所以它会告诉组件中的引用它已经更改。老实说,你似乎正在尝试手动处理属性更改,尽管Ember已经内置了这个功能。

App.IndexController = Ember.ObjectController.extend({
  display: function() {
    return this.get('data.underneath');
  }.property('data.underneath')
});

App.MyComponentComponent =  Ember.Component.extend({
  display: function() {
    return this.get('data.underneath');
  }.property('data.underneath'),
  actions: {
    insideClick: function(){
      this.set('data.underneath', 'foo bar');       
    }
  }
});

http://emberjs.jsbin.com/qesemahi/6/edit

使用计算的别名可以更干净。。

App.IndexController = Ember.ObjectController.extend({
  display: Ember.computed.alias('data.underneath')
});

App.MyComponentComponent =  Ember.Component.extend({
  display: Ember.computed.alias('data.underneath'),
  actions: {
    insideClick: function(){
      this.set('data.underneath', 'foo bar');
    }
  }
});

最新更新