Ember.js是通用计算属性模式的简写

Ember.js shorthand for common computed property pattern

本文关键字:模式 属性 计算 js Ember      更新时间:2023-09-26

在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")

Ember.computed.oneWay 的Ember源链接