1

この変更により、新しい RC8 は私のアプリを壊します (私のせいですが...)。

未消費の計算済みプロパティはオブザーバーをトリガーしません

実際、次のシナリオがあります。

Children belongTo Parent belongsTo GrandParent

そして、子孫が更新されたときに祖父母に通知する必要がありました。したがって、各モデル レベルで、次のような計算されたプロパティがありました。

// In GrandParent
innerChange: Ember.computed(function(){
}).property('parents.@each.innerChange'),

// In Parent
innerChange: Ember.computed(function(){
}).property('children.@each.innerChange'),

私はそれが悪く、慣用的ではないことを知っているので、修正するのではなく、これを変更したいと思っていました.

編集:「修正する」とは、initフックを使用してプロパティを取得することを意味しました(直感的なピクセルの回答を参照)。しかし、これを破る RC8 は、私がやっていることは慣用的ではないことを示していると思います。だから私はそれを別の方法で行うことを望んでいました。

Emberで今それを行う適切な方法はありますか? それとも手動で行う必要がありますか?

4

1 に答える 1

0

rc8リリースに関する新しいブログ投稿を記載すると役立つ場合があります。下部の太字の重要なフレーズは次のとおりです。

未消費の計算済みプロパティはオブザーバーをトリガーしない 計算済みプロパティを取得しない場合、従属キーが変更されてもオブザーバーは起動しません。ある未知の値から別の値に変化する値を考えることができます。計算されたプロパティはほとんどの場合、取得と同時に監視されるため、これは通常、アプリケーション コードには影響しません。たとえば、計算されたプロパティの値を取得し、それを DOM に配置 (または D3 で描画) し、それを観察して、プロパティが変更されたら DOM を更新できるようにします。

計算されたプロパティを監視する必要があるが、現在取得していない場合は、init メソッドで取得してください。

お役に立てれば。

于 2013-08-29T15:32:17.167 に答える