在 Ember.js 中,我发现自己定义了如下所示的计算属性:
someProp: function(){
return this.get('otherProp');
}.property('otherProp')
or
someProp: function(){
return this.get('otherObject.prop');
}.property('otherObject.prop')
是否有更短的方法来编写遵循这些模式的计算属性?
经过一些研究后,您可以通过在以下内容的帮助下执行以下操作来将其干燥一点:Ember.compated.alias:
someProp: Ember.computed.alias("otherObject.prop")
您可以使用alias
也可以设置这个属性。给定一个实现上面给出的属性的 Ember 对象,您可以执行以下操作:
obj.set("someProp", "foo or whatever"); // The set will be propagated to otherObject.prop
链接到 Ember.compated.alias 的 Ember 源 https://github.com/emberjs/ember.js/blob/v1.0.0-rc.6.1/packages/ember-metal/lib/computed.js#L665
更新:Ember.compulated.oneWay
最近出现了一个新的计算属性简写(oneWay
)被添加到Ember中,对于这个需求也是可行的。不同之处在于oneWay
速记只适用于 get 情况。因此,在对象创建过程中,这种简写比更复杂的简写更快alias
.
someProp: Ember.computed.oneWay("otherObject.prop")
链接到 Ember.compated.oneWay 的 Ember 源 https://github.com/emberjs/ember.js/blob/v1.0.0-rc.6.1/packages/ember-metal/lib/computed.js#L684
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)