我有一个更新的对象,因为它更新了嵌套属性,因此ember无法注意到更改。我告诉它,实际上通过调用notifyPropertyChange进行了更改。但是,我的父视图未收到其绑定属性已更改的通知。
实施例: http://emberjs.jsbin.com/qesemahi/3/edit
我有一个糟糕的黑客来解决这个问题但是我希望有一个原因是ember没有通知整个绑定链。目前我有一个错误的克隆对象:http://emberjs.jsbin.com/qesemahi/4/edit
答案 0 :(得分:0)
因为数据是组件内部的引用,所以它告诉组件中的引用它已被更改。老实说,尽管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');
}
}
});