2015-10-16 42 views
0

我試圖用角過濾特定領域做一個搜索欄過濾器和這應該是一個OR條件angularjs過濾與多個字段或條件

這是演示實現http://jsfiddle.net/tomalex0/ck19wvdx/2/。 我只想搜索NameGender而不是Location

無論結合我嘗試它更像AND條件。 OR conditionfilter有內置的方法嗎?

<div ng-app="myApp" ng-controller="myController"> 
<input type="text" ng-model="search"> 
<ul> 
    <li ng-repeat="user in users | filter: search">{{user.Name}} | {{user.Location}} 
    </li> 
</ul> 
</div> 





var data = [ 
     { 
      Name: "John Smith", 
      Gender: "M", 
      Location: "Wales" 
     }, 
     { 
      Name: "Sally Smith", 
      Gender: "F", 
      Location: "USA" 
     }, 
     { 
      Name: "Curtis Timson", 
      Gender: "M", 
      Location: "England" 
     }, 
     { 
      Name: "Sam Wallace", 
      Gender: "M", 
      Location: "England" 
     }, 
     { 
      Name: "Caroline James", 
      Gender: "F", 
      Location: "Scotland" 
     } 
    ]; 

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

    myApp.controller("myController", function($scope){ 
     $scope.users = data; 
    }); 

回答

0

你示範就像一個OR運營商給我。

例如,如果我在輸入寫sa,其結果是:

Sally Smith | USA 
Sam Wallace | England 

隨着ANDSam Wallace | England將被隱藏,因爲England不含sa

+0

我要排除搜索位置字段 – tomalex

1

您可能需要使用過濾器功能,而不是直接將搜索字符串傳遞給過濾器。相關代碼如下。 Here is ur fiddle modified.

<li ng-repeat="user in users | filter: filter"> 

$scope.filter = function(item) { 
var regex = new RegExp($scope.search, 'gi'); 
return item.Name.match(regex) || item.Gender.match(regex); 
}; 
+0

尼斯和容易。謝謝。 –