控制器:
var myApp = angular.module('myApp',[]); myApp.controller('myCtrl',['$scope','$filter',function($scope,$filter){ $scope.tickets = [ {title : 'ticket1',assignee : {id:'pratap',name: 'PRATAP'}},{title : 'ticket2',assignee : null},{title : 'ticket3',assignee : {id:'ak',name: 'AK'}} ]; $scope.defaultOption = 1; $scope.options = [ {id:1,name : 'MY TICKETS'},{id:2,name : 'OTHERS TICKET'} ]; $scope.filteredTicket = []; $scope.filterData = function(criteria) { if (criteria == 1) { $scope.filteredTicket = $filter('filter')($scope.tickets,{assignee: {id:'pratap'}}); } else { $scope.filteredTicket = $filter('filter')($scope.tickets,{assignee: null,assignee: {id:'ak'}}); console.log($scope.filteredTicket); } }; $scope.filterData($scope.defaultOption); }]);
HTML:
<div ng-controller="myCtrl"> <div>Current User: pratap</div> <div> FILTER: <select ng-model="defaultOption" ng-change="filterData(defaultOption)" ng-options="option.id as option.name for option in options"></select> </div> <div> <h1>Tickets</h1> <ul> <li ng-repeat="ticket in filteredTicket">{{ticket.title}}</li> </ul> </div> </div>
我想知道是否可以在$filter中使用相同的对象属性来形成或条件,如下所示
$scope.filteredTicket = $filter('filter')($scope.tickets,assignee: {id:'ak'}});
所以我得到了两个有受让人的对象:null和受让人:’ak’.如果我选择OTHERS TICKETS我需要取消ticket2和ticket3,但截至目前我只得到ticket3.
有人可以帮忙吗?