Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 使用或代替AND逻辑的角度滤波器_Angularjs - Fatal编程技术网

Angularjs 使用或代替AND逻辑的角度滤波器

Angularjs 使用或代替AND逻辑的角度滤波器,angularjs,Angularjs,我有一些复选框和表过滤器值。但如果我选择active and draft,它不会显示任何内容,因为它正在实现和逻辑,我需要使用OR逻辑的过滤器 <div class="clearfix"> <input data-ng-model="active" data-ng-true-value="active" class="pull-left" type="checkbox" id="active"/> <label class="pull-lef

我有一些复选框和表过滤器值。但如果我选择active and draft,它不会显示任何内容,因为它正在实现和逻辑,我需要使用OR逻辑的过滤器

<div class="clearfix">
      <input data-ng-model="active" data-ng-true-value="active" class="pull-left" type="checkbox" id="active"/>
      <label class="pull-left" for="active">Active</label>
</div>
<div class="clearfix">
      <input data-ng-model="draft" data-ng-true-value="draft" class="pull-left" type="checkbox" id="draft"/>
      label class="pull-left" for="draft">Draft</label>
</div>


<table class="table">
<tr ng-repeat="campaign in dashboard.campaigns | filter:all | filter:active | filter:draft">
      <td>{{campaign.name}}</td>
      <td>{{campaign.startDate}}</td>
      <td>{{campaign.endDate}}</td>
      <td>{{campaign.status}}</td>
      <td>{{campaign.tasks}}</td>
</tr>

活跃的
标签class=“向左拉”for=“拔模”>拔模
{{campaign.name}
{{campaign.startDate}
{{campaign.endDate}
{{campaign.status}
{{campaign.tasks}
编辑: 这是解决办法

app.filter('byStatus', [function () {
    return function (campaigns, active, draft) {
        var tempCampaigns = [];

        angular.forEach(campaigns, function (campaign) {
            if(campaign.status == active || campaign.status == draft ){
                tempCampaigns.push(campaign);
            }
        });
        return tempCampaigns;
    };
}]);

<tr ng-repeat="campaign in dashboard.campaigns | byStatus:active:draft">
app.filter('byStatus',[function(){
返回功能(活动、活动、草稿){
var=[];
角度。forEach(活动、功能(活动){
如果(campaign.status==活动| | campaign.status==草稿){
临时运动。推(运动);
}
});
回归运动;
};
}]);

thx all;)

您只需要实现如下自定义过滤器:

angular.module('App.filters', []).filter('activeOrDraft', [function () {
return function (campaigns) {
    if (!angular.isUndefined(campaigns)) {
        var tempCampaigns = [];
        angular.forEach(campaigns, function (campaign) {
          if (campaign.active || campaign.draft) {
            tempCampaigns.push(campaign);
          }
        });
        return tempCampaigns;
    } else {
        return campaigns;
    }
};
}]);
| activeOrDraft 
并使用它来代替filter:active | filter:draft,如下所示:

angular.module('App.filters', []).filter('activeOrDraft', [function () {
return function (campaigns) {
    if (!angular.isUndefined(campaigns)) {
        var tempCampaigns = [];
        angular.forEach(campaigns, function (campaign) {
          if (campaign.active || campaign.draft) {
            tempCampaigns.push(campaign);
          }
        });
        return tempCampaigns;
    } else {
        return campaigns;
    }
};
}]);
| activeOrDraft 

不确定代码中所有内容的含义,所以如果需要,请添加它。

这可能是我正在寻找的内容,thx:DIt不是我所需要的100%(我没有问完整的问题,所以这是我的错),但它让我找到了某个地方,我现在将设法解决:)thx:DAsk如果您需要其他信息。