我有多种选择的广告系列,当我选择新客户时,我希望广告系列的范围限定为选定的客户。筛选ng选项时,如何取消选择所有筛选出的选项?
该过滤器按预期工作,但campaigns
的ng-model
可能包含隐藏过滤器的活动。
我希望所有过滤掉的广告系列选项在不再处于选中状态时都会被取消选中。
这里是我的过滤器:
angular.module('MyApp')
.filter('campaignFilter', function(){
return function(options, client_ids, $scope) {
if (client_ids == null) {
return options;
} else {
filtered = [];
angular.forEach(options, function(option){
if (client_ids.indexOf(option.client_id) > -1) {
filtered.push(option);
} else {
idx = $scope.filter["campaign.id"].indexOf(option.client_id);
if idx > -1 {
$scope.filter["campaign.id"].splice(idx, 1);
};
};
});
return filtered;
}
}
});
更新:
我有$范围过滤对象,我需要过滤广告活动时进行更新。
$scope.filter["campaign.id"] = [1,2,3]
当选择了一个客户端,我想删除从$scope.filter["campaign.id"]
所有系列ID不属于该客户端。
当我将范围传递给过滤器时,$scope.filter
为空。那么我怎样才能访问范围模型?
是什么'deselected'是什么意思?你所显示的是一个过滤器 – charlietfl 2014-09-22 14:39:04
对不起。我的意思是ng-model是通过删除所有被筛选器隐藏的选项来更新的。 – astephenb 2014-09-22 14:59:50