1
私はArrayProxyで計算された配列を含むコントローラを持っています。私が期待される配列を取り戻すコマンドラインからハンドルバービューで計算されたEmber配列の各項目を反復処理する方法
MyApp.parentController = Ember.ArrayProxy.create
content: []
mothers: (->
mothers = (person for person in @get("content") when person.sex == 0)
).property("content")
fathers: (->
fathers = (person for person in @get("content") when person.sex == 1)
).property("content")
これは正常に動作し、私が要求したときに「MyApp.parentController.get( 『母親』)」:
のCoffeeScriptで、私のコントローラはそのように見えます。
今、私は私の文書でそのセットを表示したい、と私は母親のリストを反復処理したい:
<div id="parent-mothers-pool">
{{#each MyApp.parentController.mothers}}
{{#view MyApp.ParentView contentBinding="this"}}{{/view}}
{{/each}}
</div>
これは動作しません、実際には完全に永遠にスピンして、アプリケーションがハングコンソールに何らかのエラーを出力することもありません。
各ハンドルバーの ".mother"をオフにしておくと、すべての親が正しく表示されます。しかし、それをborksに置く。
この計算された配列をどのように反復処理しますか?
私はそれになります。その間、私は計算されたプロパティを反復する答えを見つけ出しました。まず、.cacheable()を追加することによって**プロパティ**をキャッシュする必要があります。これにより、アプリケーションが停止することがなくなります(ドキュメント、natch ...のどこにも記載されていません)。次に、プロパティがキャッシュ可能とマークされた後、プロパティが配列の各項目を監視する必要があるため、実際にプログラムした方法で機能しなくなります。 計算されたプロパティの固定構文は、 'mothers:(...)。property( "content。@ each")。cacheable()'です。これにより問題は解決され、ビューは正しく動作します。 –
私の答えは別として、任意のコレクションやサブグループに対してカスタムビューを持たなければならないより典型的なパターンです。たくさんの3行のビューを積み重ね始めているような気がします。 –
この返信では、囲みビューはこのスニペットに含まれるdivの後の名前であると仮定します。明らかに、「母親」の拘束力は、「各」スコープレベルの視点によって保持されるべきである。このdivを含むビューが必要です。 –