ng-repeatディレクティブを定義して配列を反復処理する場合、構文にはng-repeat="friend in friends"
が指定され、テンプレート内には{{friend.name}}
のようなインターポレーション演算子が使用されます。ng-repeatループでオブジェクト変数名を避けることはできますか?
プロパティを現在のアイテムスコープに割り当てることはできますか?だから{{friend.name}}
の代わりに{{name}}
と呼ぶことができますか?
私の指示が2つの異なるテンプレートの範囲で使用されている理由です。例えば、が作成しないリピータと無関係なテンプレートの両方で使用される指示文"userActions"
があるかもしれません。センス。私は意味的な意味を持たないfriend
オブジェクトを人工的に製造することを避けたいと思います。
私のユースケースは、このようなものです:私は、様々なタイプのブロックをレンダリングするグリッドを持って
。いくつかの擬似コード:
<div ng-repeat="block in blocks">
< cat block />
< friend block >
<userActions directive />
</ friend block >
< guitar block />
.... more blocks
</div>
私もまったく同じユーザのアクションが含まれている友人のページを持っている:
今..fragment of friend page..
<element ng-control="friend">
<userActions directive />
</element>
、私は、ユーザーにリピータ内のブロックのプロパティをしたい場合は、構文は{{block.name}}
です。したがって、userActions
のテンプレートにはこれが含まれています。
ただし、フレンドのページでこのテンプレートを使用すると、フレンドコントローラの範囲内に{{block.name}}
を作成する必要があります。ブロックはブロックグリッドのコンテキスト内にしか存在しないため、これは意味をなさない。私はこれを作成する必要はありませんblock
。
ブロックスコープとコントローラの両方にそれが含まれているので、ディレクティブテンプレート内から{{name}}
を呼び出すだけです。 block
オブジェクトを作成したくない場合は、ディレクティブを使用する各スコープに人工的にblock.name
を設定します。
は、ここでそれはすべてがあなたのディレクティブを構造化する方法によって異なりjsFiddle to illustrate the cause
ここでは、提供した例が説明のためのものであり、試行しているものがより複雑であると仮定していますか?あなたはおそらくあなたがしようとしていることを記述することができますか?友人とブロックの間に共通するものがあるはずです - はい?それ以外の場合は、両方のテンプレートに同じテンプレートを使用しているという意味合いはありません。 – ganaraj
ここにあなたの問題を解決するバイブルです。それがあなたが探しているものかどうかは分かりません。分離スコープを作成中であることに注意する必要があります。 http://jsfiddle.net/b7KEm/6/ – ganaraj
ええ、ちょうど問題の縮小例を表しています。明らかに私のアプリははるかに複雑です:)私は詳細を教えてください - ブロックはいくつかの可能なエンティティのビューを表します。これらのエンティティの1つは「友人」です。各友人エンティティには、関連付けることができる一連のユーザーアクションがあります。私たちの例では、アクションは "kill"と "hug"です。これらのアクションは、友人のページのコンテキストと友人のページのコンテキストの両方から実行できます。それらには同じテンプレートとロジックが含まれており、同じディレクティブを共有しています。 – OpherV