在Ember.js中,我发现自己定义的计算属性如下所示:
someProp: function(){ return this.get('otherProp'); }.property('otherProp')
要么
someProp: function(){ return this.get('otherObject.prop'); }.property('otherObject.prop')
解决方法
经过一段时间的研究,你可以通过在Ember.computed.alias的帮助下做一些事情来干这个:
someProp: Ember.computed.alias("otherObject.prop")
您也可以使用别名来设置此属性.给定一个实现上面给出的属性的Ember对象,您可以:
obj.set("someProp","foo or whatever"); // The set will be propagated to otherObject.prop
Link to Ember Source for Ember.computed.alias
更新:Ember.computed.oneWay
最近,一个新的计算属性速记(oneWay)被添加到Ember,这对于这个要求也是可行的.区别在于oneWay简写只适用于get case.因此,在创建对象时,这种速记比更复杂的别名更快.
someProp: Ember.computed.oneWay("otherObject.prop")