это мой контроллер:
app.controller('listdata', function($scope, $http) {
$scope.users = [{
"name": "pravin",
"queue": [{
"number": "456",
"status": "Unavailable"
}],
"phone": "7411173737"
},
{
"name": "pratik",
"queue": [{
"number": "111",
"status": "Unavailable"
}],
"phone": "8558855858"
},
{
"name": "priyanka",
"queue": [{
"number": "111",
"status": "Unavailable"
}],
"phone": "5454573737"
},
{
"name": "prerana",
"queue": [{
"number": "111",
"status": "Unavailable"
}],
"phone": "7454543737"
}];
$scope.filter111 = function (user) {
return (user.queue.find(({number}) => number === '111'));
}
});
и это мое мнение:
<label class="switch">
<input ng-true-value='111' ng-false-value='' type="checkbox" ng-model="queue111">111
</label>
<div class="row" ng-controller="listdata">
<div ng-repeat="user in users|filter:queue111">
<p> {{user.name}} {{user.phone}}</p>
</div>
</div>
Когда я запускаю приложение, отображаются все четыре пользователя из массива данных пользователей.Когда я нажимаю на флажок фильтра, он отображает пользователей, у которых есть очередь с номером 111. Но он также отображает пользователя pravin, поскольку он содержит номер телефона 7411173737, который содержит 111. Я хочу, чтобы этот фильтр отображал только записи, чей номер очередисоответствует 111, а не любым другим полям, таким как номер телефона здесь.Таким образом, фильтр должен отображать только записи с номером очереди 111.
Что я сделал до сих пор:
Я создал пользовательскую функцию $scope.filter111
как показано в приведенном выше коде, который возвращает только тех пользователей, у которых номер очереди равен 111. Я хочу использовать эту функцию в качестве фильтра, когда флажок установлен.Если я непосредственно делаю ng-repeat = "user in users | filter: filter111", то при запуске приложения отображаются только записи с номером очереди 111 (т.е. только 3 записи) (все четыре записи должны отображаться при запуске приложения).Поэтому я хочу, чтобы эта функция запускалась только тогда, когда я установил флажок и применил ее в качестве фильтра.Я думал о чем-то вроде этого:
<input ng-true-value="'filter111'" ng-false-value='' type="checkbox" ng-model="queue111">111
но это не работает таким образом.Как мне этого добиться?