2017-02-16 8 views
-2

ng-repeatを使用してテーブルのデータを表示しています。今度は、角度ドロップダウンmultiselectのチェックされた値に基づいてデータをフィルタリングする必要があります。どのようにそれを行う誰も私を助けることができますか?角度ドロップダウンマルチセレクションの値に基づいてng-repeatのデータをフィルタリングする方法

+1

コードサンプルを表示するか、ケースのjsfiddleの設定を改善してください。 –

+0

これはruby-on-railsとは関係ありません。 – brhardwick

答えて

1

私はいくつかの仮定をするつもりです。最初は、私がそれを見つけたときに最初に見たAngular Dropdown Multiselectを使っているということです。彼らのサイトは少し壊れているように見えますが、あなたのモデルはIDとDisplayを持つオブジェクトの配列でなければなりません。この場合、フィルタを使用できます。フィルタでは、一致するIDに基づいて配列をコンパイルするだけです。お使いのコントローラがどのように見えるのであれば:

app.controller('Ctrl', function($scope) { 
    $scope.FilterPhrase = [ 
       {ID:6, Display:"Display6"},//this wont show up 
       {ID:3, Display:"Display3"}, 
       {ID:1, Display:"Display1"}]; 
    $scope.myData = [{ID:1, Display:"Display1"}, 
        {ID:2, Display:"Display2"}, 
        {ID:3, Display:"Display3"}, 
        {ID:4, Display:"Display4"}, 
        {ID:5, Display:"Display5"}]; 
}); 

その後、フィルタを作成します。

app.filter('multifilter', function() { 
return function (list, filterdata) { 
     var results = []; 

    filterdata.forEach(function(a){ 
      var r = list.find(function(b){ 
       return a.ID==b.ID; 
     }); 
     results.push(r);   
     }); 
    return results; 
}; 
}); 

そして最後に、あなたのNGリピートの終わり

<tr ng-repeat="n in myData | multifilter:FilterPhrase"> 

フィドルでそれを呼び出す:http://jsfiddle.net/brhardwick/promv3e1/2/

関連する問題