我有一个对象更新了,但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');
}
}
});