6

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

这是我的模型:

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

  age: 79
}

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

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

谢谢你的帮助!

4

1 回答 1

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');
     }
   }
});

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

于 2013-10-08T19:26:02.280 回答