2017-03-28 15 views
1

ng-repeatのフィルタリングには助けが必要です。私はいくつかのことをしようとしましたが、私の場合にはうまくいく解決策を見つけることができません。ng-repeatの複数のフィルタ

sensor in sensors | filter: { group: group.id, (name: search || description: search) } 

検索ng-model(テキスト入力)で、group.idng-repeatにgeneretedされているグループのID(私は2つのネストされたNG-繰り返しを持っている)である:私はこのようなものにする必要があります。私は私のフィルタをしようとしました:

$scope.search = ''; 
    $scope.searchFilter = function() { 
     return function (p) { 
      if ($scope.search!='') { 
       for (var i in p) { 
        console.log("p.name: "+p.name+", search: "+$scope.search); 
        if (p.name == $scope.search || p.description == $scope.search) { 
         return p; 
        } 
       } 
      } else { 
       return p; 
      } 

     } 
    } 

ほとんど動作します。私のデータをフィルタリングしますが、正しい名前を書いた場合に限ります。たとえば、私は "エンジン"を探したいと思う。 "en"を書き始めるとデータはありませんが、 "engine"と書くと正しいデータが表示されます。だから私はそれにも取り組む必要があります。私はあなたがしたいことを理解してくれることを願っています。

答えて

2

解決策を見つけました。

sensor in sensors filter: { group: group.id } | filter: searchFilter() 

そして、この:

$scope.search = ''; 
$scope.searchFilter = function() { 
    return function (p) { 
     if ($scope.search!='') { 
      for (var i in p) { 
       var re = new RegExp($scope.search, 'i'); // This I've add 
       if (p.name.match(re) || p.description.match(re)) { // This I've change 
        return true; 
       } 
      } 
     } else { 
      return true; 
     } 

    } 
} 
+0

uがあり、不必要な機能ラッパを持っています... –

関連する問題