2017-01-10 6 views
1

ユーザーは、角度によって濾過し、注文した「センター」をダウンロード/印刷することを決定したときに、それが唯一のオリジナルを知っているのでしかし、印刷方式が失敗した私が成功したNG-繰り返し、そのフィルタを使用していますが、ORDERBYはAngular ng-repeatフィルタ結果にアクセスできますか?

<div ng-repeat="center in centers | filter: subjectName | orderBy:[\'name\',\'parent']">' 

を機能ソートされていない配列を返します。フィルタリングされた/ orderByの角度メソッドによって得られたオブジェクトをキャプチャする方法はありますか?それで、私は自分の印刷方法で直接使用できますか?

<div ng-repeat="center in centers | filter: subjectName | orderBy:[\'name\',\'parent']">' 
 
    '<span>{{center.name}</span>'+ 
 
</div> 
 
.... 
 
// what I have so far 
 
<li><a ng-click="print(centers)"><span class="glyphicon glyphicon-print"></span> Print All </a></li> 
 
... 
 

 
// what I would like to have 
 
... 
 
<li><a ng-click="print(filteredOrderedObject)"><span class="glyphicon glyphicon-print"></span> Print All </a></li> 
 
... 
 
// what I have 
 
scope.print = function(ocw) { 
 
    //printing 
 
} 
 

 
// what I would like to have 
 
scope.print = function(filteredOrderedObject) { 
 
    //printing 
 
}

+0

は、手動で配列をフィルタリング.... '$フィルタ( 'ORDERBY')(収集、表現、逆、コンパレータ)'と新しい配列に結果を割り当てています。 –

+0

ありがとうございます!はい! – lucap

答えて

0

はあなたのコードに直接$filterサービスを使用することができます。このようなもの。

var filtered = $filter('filter')(centers, subjectName); 
filtered = $filter('orderBy')(filtered, ['name', 'parent']); 

https://docs.angularjs.org/api/ng/filter/filter

+0

非常に親切!すばらしいです! – lucap

0

あなたは、コントローラで式を評価するために$にevalを使用することができます。続き

は構文

$scope.centers = $scope.$eval("center in centers | filter: subjectName | orderBy:[\'name\',\'parent']"); 
+0

解決していただきありがとうございます! – lucap

関連する問題