У меня есть такой массив данных:
$scope.data = [{
name: 'joseph',
statarray: [{
status: 'Online',
status: 'Offline',
}],
active: 'yes'
},
{
name: 'arnold',
statarray: [{
status: 'Offline'
}],
active: 'no'
},
{
name: 'john',
statarray: [{
status: 'Online'
}],
active: 'yes'
}
];
$scope.findObjectByKey = function(array, key, value) {
for (var i = 0; i < array.length; i++) {
if (array[i][key] === value) {
return array[i];
}
}
return null;
};
$scope.Online = function(array){
var obj = $scope.findObjectByKey(array, 'status', 'Online');
return obj;
}
$scope.Offline = function(array){
var obj = $scope.findObjectByKey(array, 'status', 'Offline');
return obj;
}
Функции $ scope.Online и $ scope.Offline сортируют данные в соответствии со статусом Online иНе в сети.
Вот мое мнение:
У меня есть два флажка в качестве фильтров:
<input ng-true-value='Online' ng-false-value='' type="checkbox" ng-model="online" type="checkbox">Online
<input ng-true-value='Offline' ng-false-value='' type="checkbox" ng-model="offline" type="checkbox">Offline
<div ng-repeat="user in data|filter:online|filter:offline">
<p>{{user.name}}</p>
</div>
В настоящее время, когда я нажимаю флажок, соответствующий Online
, отображается пользовательjoseph
и john
, чей статус Online
, и когда я нажимаю флажок, соответствующий Offline
, отображаются пользователи joseph
и arnold
, чей статус Offline
.Это очень хорошо работает.Но когда я нажимаю обе кнопки фильтра, отображается только joseph
, так как joseph
имеет статус Online
и Offline
.Таким образом, операция AND
применяется здесь.Но я хочу операцию OR
здесь.Поэтому, когда я нажимаю обе кнопки фильтра, я получаю вывод как joseph
, arnold
и john
в представлении.Любая подсказка о том, как я могу это сделать?