观察嵌套对象的属性 [英] Observe properties on nested object

查看:80
本文介绍了观察嵌套对象的属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

这是我的模型:

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

  age: 79
}

如何创建一个观察到的计算属性名称中的所有键都不需要手动列出?

How do I create a computed property that observes all the keys inside the name object without listing them manually?

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

感谢任何帮助! / p>

Thanks for any help!

推荐答案

您可以自定义模型的集合调用:检查设置的值涉及 name 的属性,如果是,请在 name 中调用 notifyPropertyChange / code>:

You can customize the set call of your model: Check if the value being set involves a property of name and if it does, call notifyPropertyChange on 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

这篇关于观察嵌套对象的属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆