4

Ember.computed を使用して、ビューのメソッドの 1 つから計算されたプロパティを設定しようとしています。このフィドルに示されている構文を使用しようとしましたが、ご覧のとおり、実際には期待どおりの動作をしていないようです。正しい方向へのポインタは大歓迎です。

http://jsfiddle.net/skane/H5ma5/1/

this.set('myComputed', Ember.computed(function() {return "funky"}).property());

スティーブ

4

1 に答える 1

5

Ember はその魔法の一部を実行する必要があるため、これはこの方法では機能しません。私はEmberのソースを見て、これを見つけまし

// define a computed property
  Ember.defineProperty(contact, 'fullName', Ember.computed(function() {
    return this.firstName+' '+this.lastName;
  }).property('firstName', 'lastName'));

  @method defineProperty
  @for Ember
  @param {Object} obj the object to define this property on. This may be a prototype.
  @param {String} keyName the name of the property
  @param {Ember.Descriptor} [desc] an instance of `Ember.Descriptor` (typically a
    computed property) or an ES5 descriptor.
    You must provide this or `data` but not both.
  @param {anything} [data] something other than a descriptor, that will
    become the explicit value of this property.

したがって、あなたのケースでは次のように動作するはずです。

Ember.defineProperty(this, 'myComputed', Ember.computed(function() {
    return "funky";
}).property());
于 2013-03-14T11:22:00.893 に答える