2016-01-20 50 views
0
<select ng-model="healthparameters.companyidfilter"> 
<option></option> 
</select> 

<select ng-model="parameters.nameidfilter"> 
<option></option> 
</select> 

$scope.all_users = [ 
{ 
     "param0": "value", 
     "param1": "value", 
     "param2": "value", 
     "param3": "value", 
     "param4": "value", 
     "param5": "value", 
     "param6": "value", 
     "param7": "value", 
     "param8": "value", 
     "param9": "value", 
     "param10": "value", 
     "param11": "value", 
     "param12": "value", 
     "param13": "value", 
     "param14": "value", 
     "param15": "value", 
     "param16": "value", 
     "param17": "value", 
     "param18": "value", 
     "param19": "value", 
     "param20": "value", 
     "param21": "value", 
     "param22": "value", 
     "param23": "value", 
     "param24": "value", 
     "param25": "value", 
     "param26": "value", 
     "param27": "value", 
     "param28": "value", 
     "param29": "value", 
     "param30": "value" 
}, 
{ 
     and so on....... 
} 
] 

我需要根據參數(參數1,參數2,...)過濾數據。現在,我的代碼爲過濾器完全寫入的數據這樣角度過濾器始終將表達式視爲'和'|不'或'

var filtered; 
filtered = $filter('filter')($scope.all_users, {param1 : $scope.parameters.companyidfilter,param2: $scope.parameters.nameidfilter,......}) 

上面的代碼過濾數據,但問題是:

結果將是這樣的:

參數1 & &參數2所以它在兩個對象之間執行「和」操作。

我的問題是我們如何將兩個物體之間做「或」操作,並返回所有的數據

回答

1

按照Angular documentation你也可以傳遞一個函數的過濾器,你可以返回true如果該值應包括像這樣:

var filtered = $filter('filter')(
    $scope.all_users, 
    function(value, index, array) { 
     return value.param1 === $scope.parameters.companyidfilter || value.param2 === $scope.parameters.nameidfilter; 
    } 
); 
+0

我需要過濾的數據在「VAR過濾」來分配,你請能解釋得 –

+0

它應該是與此代碼,請參閱'VAR過濾= $過濾器(「過濾器」)' –

+0

感謝@Martjin Welker –