观察嵌套对象的属性

5 ember.js

示例小提琴:http://emberjs.jsbin.com/aviyUnA/9/edit? html,js,output

这是我的模特:

{
  name: {
    title: 'Mr',
    first: 'Potato',
    last:  'Head'
  },

  age: 79
}
Run Code Online (Sandbox Code Playgroud)

如何创建一个计算属性来观察name对象内的所有键而不手动列出它们?

fullName: function() {
  var name = this.get('name');
  return [name.title, name.first, name.last].join(' ');
}.property('name.??')
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

Pan*_*agi 3

您可以自定义set模型的调用:检查设置的值是否涉及 的属性name,如果涉及,则notifyPropertyChange调用name

App.MyModel = Ember.Object.extend({
   set: function(keyName, value) {
     this._super(keyName, value);
     if (keyName.indexOf('name.') > -1) {
       // a property of `name` has changed => notify observers of `name`
       this.notifyPropertyChange('name');
     }
   }
});
Run Code Online (Sandbox Code Playgroud)

演示: http: //emberjs.jsbin.com/akEjubU/1/edit