观察嵌套对象的属性

时间:2013-10-08 10:54:09

标签: ember.js

示例小提琴: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.??')

感谢您的帮助!

1 个答案:

答案 0 :(得分: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'); } } });

{{1}}

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