Javascript angularjs仅在选中复选框时应用自定义筛选器
这是我的控制器:Javascript angularjs仅在选中复选框时应用自定义筛选器,javascript,angularjs,html,angularjs-filter,Javascript,Angularjs,Html,Angularjs Filter,这是我的控制器: app.controller('listdata', function($scope, $http) { $scope.users = [{ "name": "pravin", "queue": [{ "number": "456", "status": "Unavailable" }], "phone": "7411173737" }, { "name": "pratik", "queue": [
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>
但它不是这样工作的。
如何实现这一点?我通过在过滤器中使用三元运算符修复了它:
var-app=angular.module('myApp',[]);
app.controller('listdata',函数($scope,$http){
$scope.users=[{
“姓名”:“普拉文”,
“队列”:[{
“编号”:“456”,
“状态”:“不可用”
}],
“电话”:“7411173737”
},
{
“名称”:“pratik”,
“队列”:[{
“编号”:“111”,
“状态”:“不可用”
},
{
“编号”:“112”,
“状态”:“不可用”
}],
“电话”:“8558855858”
},
{
“姓名”:“普里扬卡”,
“队列”:[{
“编号”:“111”,
“状态”:“不可用”
}],
“电话”:“54573737”
},
{
“名称”:“prerana”,
“队列”:[{
“编号”:“111”,
“状态”:“不可用”
}],
“电话”:“74543737”
}];
$scope.filter111=函数(用户){
return(user.queue.find(({number})=>number==='111');
}
});代码>
111
{{user.name}{{user.phone}
ng repeat=“user in users | filter:{name:queue111”}
这会执行filter111函数吗?不要使用自定义筛选器,我建议使用精确匹配,ng repeat=“user in users | filter:{name:queue111”}:true
不适用于我。因为我只想显示队列号为111的对象
<input ng-true-value="'filter111'" ng-false-value='' type="checkbox" ng-model="queue111">111