1

https://github.com/emberjs/ember.js/blob/master/packages/ember-metal/lib/computed.js#L482を見てきましたが、計算されたプロパティが実際に方法であることがわかりましたガイドに記載されているよりも強力です。

本当に便利な簡単な使用例は次のとおりです。

Ember.Object.create({
  propertyA: Ember.computed.empty('anotherProperty'),
  propertyB: Ember.computed.not('anotherProperty'),
  propertyB: Ember.computed.equal('anotherProperty', "Ed Balls")
});

しかし、より高度なケースがどのように機能するかはよくわかりません: https://github.com/emberjs/ember.js/blob/master/packages/ember-metal/lib/computed.js#L617

私は本当にいくつかの明確化を使用することができます-私はそれらを適切に使用することで回避できる恐ろしい多くのボイラープレートを書いているのではないかと思います:smiley:.

それらがどのように機能するかを理解したら、ガイドにいくつかのドキュメントを追加しようとすることは間違いありません.

4

1 に答える 1

1

いくつかの使用例 (ただし、高度なだけでなく、些細なことではありません) は次のようになります。

...
// this could be in your controller
hasPost: Ember.computed.bool('content.post')
hasComments: Ember.computed.bool('content.post.comments')
showComments: Ember.computed.and('hasPost', 'hasComments')
// here you could perfectly bind on the showComments property
...

考慮しなければならないことの 1 つは、CP は (今のところ) チェーン可能ではないということです。そのため、おそらくこれは、最も高度な使用例を制限します。しかし、連鎖可能な場合は、次のようなことができます。

...
// not possible at the moment
showComments: Ember.computed.bool('content.post') && Ember.computed.bool('content.post.comments')
...

いくつかの使用例 (ただし、テスト ケースのみ) は、こちらで見つけることができます。この問題も興味深いかもしれません。

それが役に立てば幸い

于 2013-05-15T17:01:53.890 に答える