7

在 Ember.js 中,我发现自己定义了如下所示的计算属性:

someProp: function(){
  return this.get('otherProp');
}.property('otherProp')

或者

someProp: function(){
  return this.get('otherObject.prop');
}.property('otherObject.prop')

是否有更短的方法来编写遵循这些模式的计算属性?

4

1 回答 1

12

在进行了一些研究之后,您可以在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")

链接到 Ember.computed.oneWay 的 Ember 源

于 2013-02-19T19:42:15.920 回答