我在表上有一個適配器。表中的數據只是我需要的所有數據的一個子集。我想過濾一下包含在我的表列中的信息,而不是所有的數據。Angularjs過濾器匹配對象中的所有屬性,即使在我的表中只有一個屬性
的數據是具有事件用戶歷史對象。用戶是進行更改的人員。所以在example Jordy對自己做出了改變,但是現在我無法過濾他改名的名字,因爲這是他的當前名字,所以過濾器匹配事件用戶的名字。默認過濾器適用於未包含在用戶中的數據。所以我的問題是,一個默認的過濾器是否可以排除/內含物,或者如果我卡住寫一個新的過濾器。
我所看到的,你可以在用戶對象本身的對象屬性具體過濾器,但我無法弄清楚如何做到這一點,對事件數據仍然篩選。
JS:
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.searchText = "Jordy"
$scope.events = [{
"id": 8,
"version": 0,
"eventUser": {
"email": "[email protected]",
"nameFirst": "Jordy",
"nameLast": "Nelson"
},
"eventField": "nameLast",
"valueOld": "Nelsons",
"valueNew": "Nelson",
"eventDate": "Jan 7, 2014 04:05 PM"
}, {
"id": 7,
"version": 0,
"eventUser": {
"email": "[email protected]",
"nameFirst": "Jordy",
"nameLast": "Nelson"
},
"eventField": "nameFirst",
"valueOld": "Jordys",
"valueNew": "Jordy",
"eventDate": "Jan 7, 2014 04:05 PM"
}, {
"id": 6,
"version": 0,
"eventUser": {
"email": "[email protected]",
"nameFirst": "Jordy",
"nameLast": "Nelson"
},
"eventField": "timeZoneId",
"valueOld": "Pacific/Tahiti",
"valueNew": "Pacific/Niue",
"eventDate": "Jan 7, 2014 01:43 PM"
}, {
"id": 5,
"version": 0,
"eventUser": {
"email": "[email protected]",
"nameFirst": "Jordy",
"nameLast": "Nelson"
},
"eventField": "timeZoneId",
"valueOld": "America/Boise",
"valueNew": "Pacific/Tahiti",
"eventDate": "Jan 7, 2014 10:26 AM"
}, {
"id": 4,
"version": 0,
"eventUser": {
"email": "[email protected]",
"nameFirst": "Jordy",
"nameLast": "Nelson"
},
"eventField": "title",
"valueOld": "",
"valueNew": "s",
"eventDate": "Jan 7, 2014 10:25 AM"
}, {
"id": 3,
"version": 0,
"eventUser": {
"email": "[email protected]",
"nameFirst": "Jordy",
"nameLast": "Nelson"
},
"eventField": "nameLast",
"valueOld": "Nelson",
"valueNew": "Nelsons",
"eventDate": "Jan 7, 2014 10:25 AM"
}, {
"id": 2,
"version": 0,
"eventUser": {
"email": "[email protected]",
"nameFirst": "Jordy",
"nameLast": "Nelson"
},
"eventField": "nameFirst",
"valueOld": "Jordy",
"valueNew": "Jordys",
"eventDate": "Jan 7, 2014 10:25 AM"
}, {
"id": 1,
"version": 0,
"eventUser": {
"email": "[email protected]",
"nameFirst": "Jordy",
"nameLast": "Nelson"
},
"eventField": "password",
"valueOld": "Old Password",
"valueNew": "New Password",
"eventDate": "Jan 6, 2014 05:03 PM"
}]
}
HTML:
<div ng-controller="MyCtrl">
<input type="text" ng-model="searchText">
<table>
<tr ng-repeat="event in events|filter:searchText">
<td>{{event.id}}</td>
<td>{{event.valueOld}}</td>
<td>{{event.valueNew}}</td>
<td>{{event.eventUser.email}}</td>
</tr>
</table>
</div>
小提琴: http://jsfiddle.net/VfJXU/
如果過濾器僅適用於屬性特定的列,但所有其他列都停止工作,則可以使用此功能。 – Fortytwo