2017-02-15 16 views
0

注:AngularJSバージョン1.2.28ドロップダウンメニューの値に基づいてデータをフィルタリングする方法は?

私はAngularJSに初心者ですし、ドロップダウンメニューで選択した値に基づいて、要素を非表示にしようとしています。 「黒」のドロップダウン・オプションが選択されている場合、データ表は「黒」の区分色を有する要素のみを表示すべきである。 「黄」のドロップダウン・オプションが選択されている場合、データ表は「黄」の区分色を有する要素のみを表示すべきである。

データをフィルタリングし、ドロップダウンメニューで選択した値が含まれていないアイテムを非表示にするにはどうすればよいですか?

ここに私のサンプルデータ(私は簡潔のためのアプリとコントローラ指令を出し、左)です:

[{ lastName: 'Doe', firstName: 'John', division: 'Blue'}, 
{ lastName: 'Smith', firstName: 'Jane', division: 'Yellow' }] 

ドロップダウンHTML:

<select ng-model="orderProp"> 
    <option value="division">Black</option> 
    <option value="division">Yellow</option> 
</select> 

テーブルビュー:

<table> 
    <thead> 
    ...snip ... 
    </thead> 
</table> 
<tbody> 
    <tr ng-repeat="item in items | orderBy: orderProp"> 
     <td></td> 
    </tr> 
</tbody> 
は、

スクリプト:

var myApp = angular.module('myApp', []); 

myApp.controller('MyCtrl', function($scope, $http){ 
    $http.get('data.json').success(function(data){ 
     $scope.items = data; 
     $scope.orderProp = 'lastName'; 
    }); 
}); 
+0

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

+0

**選択した値を含むアイテムを非表示にする** **非表示にする選択された値を含まないアイテム**その他のあなたのリストには、選択された値である1つの値のみが含まれます。だから '黄色 'を選択した場合、' ng-repeat'の出力リストはどのように見えますか? – user2718281

答えて

0

答えは(も、フィルタのいくつかの種類である)ORDERBYを追加したように、デフォルトのフィルタを追加する必要があり、単純です:

<table> 
    <thead> 
    ...snip ... 
    </thead> 
</table> 
<tbody> 
    <tr ng-repeat="item in items | filter: orderProp | orderBy: orderProp"> 
     <td></td> 
    </tr> 
</tbody> 

HEREあなたはフィルタ機能についての詳細を見つけることができます。

0

は、これを試してみてください

<tr ng-repeat="item in items | filter: {division: orderProp}"> 
    <td></td> 
</tr> 

となぜあなたは、コントローラで$scope.orderProp = 'lastName';が必要なのでしょうか?本当に必要でない場合は削除してください

関連する問題