0

ng-if ブロック内にネストされた ng-repeat があります。

<div ng-repeat="item in filteredItems = (fullItemCollection | filter:searchQuery)>{{item}}</div>

コントローラーから $scope.filteredItems にアクセスしようとすると、filteredItems が表示されません。ng-if によって作成されたスコープと関係があると思いますが、以前に同様の設定を問題なく使用したことがあると確信しています。

jsfiddle をデモとして作成: http://jsfiddle.net/gLdeM/

また、この動作が ng-if なしで実際に機能することを示すために jsfiddle を作成しました: http://jsfiddle.net/LgSAL/1/

注: plnkr が大流行していることは知っていますが、何らかの理由でファイアウォールが plnkr での保存をブロックしています :(

4

2 に答える 2

0

JavaScript の継承は主に JavaScript オブジェクトを対象としていることを忘れていました。完全でフィルター処理された配列を外側のオブジェクトにネストすると、機能します。

$scope.items = {
    filtered: [],
    full: ['red', 'blue', 'green', 'yellow', 'blue-green', 'yellow-green', 'orange']
};

更新された jsfiddleを参照してください

于 2014-05-02T21:11:33.693 に答える
0

変数filteredItemsは、 内でローカルに使用できますng-repeat。最初のリストと同じ方法で 2 番目のリストをフィルター処理する場合は、同じフィルター条件を使用します。

<div ng-repeat="item in filteredItems = (fullItems | filter:searchQuery)">
  {{ item }}
</div>

http://jsfiddle.net/gLdeM/1/

于 2014-05-02T20:51:47.870 に答える