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

最近、新しい計算されたプロパティの短縮形 ( oneWay) が Ember に追加されました。これは、この要件にも適しています。違いは、oneWay短縮形は get ケースでのみ機能することです。したがって、この短縮形は、より複雑な よりもオブジェクトの作成が高速aliasです。

someProp: Ember.computed.oneWay("otherObject.prop")

Ember.computed.oneWay の Ember ソースへのリンク

于 2013-02-19T19:42:15.920 に答える