在 Ember.js 中,我发现自己定义了如下所示的计算属性:
someProp: function(){
return this.get('otherProp');
}.property('otherProp')
或者
someProp: function(){
return this.get('otherObject.prop');
}.property('otherObject.prop')
是否有更短的方法来编写遵循这些模式的计算属性?
在 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")
您也可以使用alias
来设置此属性。给定一个实现上述属性的 Ember 对象,您可以执行以下操作:
obj.set("someProp", "foo or whatever"); // The set will be propagated to otherObject.prop
链接到 Ember.computed.alias 的 Ember 源
更新:Ember.computed.oneWay
最近在 Ember 中添加了一个新的计算属性简写 ( oneWay
),这对于这个需求也是可行的。不同之处在于oneWay
速记仅在 get 情况下有效。因此,在对象创建过程中,这种速记比更复杂的 速记更快alias
。
someProp: Ember.computed.oneWay("otherObject.prop")