を親スコープにアクセスすることができますこれは$parent
を使用しない仕組みです。ネストされたスコープを上向きに検索して、使用しているオブジェクトを検索しますが、多くのスコープが必要です。リストを含むスコープで
、あなたはこのように、プロパティとしてリストでオブジェクトを定義することができますが:
$scope.obj = {};
$scope.obj.items = ['item1','item2','item3'];
次に、このようなng-repeat
見てい:
<div ng-repeat="item in obj.items | filter:'item3' track by $index">
{{obj.items[ obj.items.indexOf(item) ]}}
</div>
を( $index
はフィルタされた配列のインデックスでありオリジナルではないためobj.items[ $index ]
ではなくobj.items[ obj.items.indexOf(item) ]
を使用する必要があります。
obj
は現在のスコープに存在しませんが、そのプロパティにアクセスしようとすると、Angularはエラーを表示するのではなく現在のスコープの上に表示されます({{obj}}
は未定義ですが、 Angularは、より高いスコープで見るのではなく、あなたに何も与えないことに満足しています)。私は、アレイ内の項目にバインドng-model
で入力していた、そしてモデルが更新されるたび、私は思うので、入力がぼやけてしまうため、私は、track by $index
を必要と私の場合はhttp://www.angularjshub.com/examples/basics/nestedcontrollers/
:これは、ネストされたスコープに関する有用なリンクですHTMLが再レンダリングされていました。 track by $index
を使用した結果、同じ値を持つ配列の項目が繰り返されます。第1のもの以外のものを修正すると、奇妙なことが起こります。多分それを避けるために一意性のためにフィルタリングすることができます。
私はAngularJSには比較的新しいので、大きなものがあればコメントしてください。しかし、これは動作するので、私は少なくともそれを使用しています。
これはうまくいくはずです。 {{campaign.name}}はng-repeatの外で働いていますか? – Anoop
ng-repeatが作成する子スコープは、プロトタイプ的に親スコープから継承します。したがって、親スコープで定義されたすべてのプロパティは、ng-repeat子スコープで表示される必要があります。他のディレクティブがdivに定義されているのか、その内部に定義されていますか? –
わかった。コメントありがとうございました。 –