Javascript AngularJS多重滤波器
我有一个订单列表和一个下拉列表,可以根据订单状态过滤订单。状态为:未交付、完全交付和部分交付。过滤可以很好地处理这3个选项,但是我想实现一个额外的选项,同时显示未交付和部分交付的订单Javascript AngularJS多重滤波器,javascript,angularjs,Javascript,Angularjs,我有一个订单列表和一个下拉列表,可以根据订单状态过滤订单。状态为:未交付、完全交付和部分交付。过滤可以很好地处理这3个选项,但是我想实现一个额外的选项,同时显示未交付和部分交付的订单 <select class="form-control" id="status" ng-model="orderFilter.status" ng-init="orderFilter.status = '_'"> <option value="_">all</o
<select class="form-control" id="status" ng-model="orderFilter.status"
ng-init="orderFilter.status = '_'">
<option value="_">all</option>
<option value="_not" class="text-danger">not delivered</option>
<option value="_part" class="text-info">partially delivered</option>
<option value="n-p" class="text-warning">not and partial</option>
<option value="_done" class="text-success">delivered</option>
</select>
因此,我添加了一个新的自定义值,它的工作方式是,复制一个或另一个对象,这是不好的,冗余的,不是我想要的
我想可能会有这样的情况:
<option value="_not || _part" class="text-warning">not and partial</option>
过滤部分:
<tr ng-repeat="s in vm.sales | filter: orderFilter">
<td>...</td>
</tr>
最好的解决方案是编写自己的筛选器,如果出于某种原因不想这样做,则可以通过编程筛选列表并根据所选值更新列表:
<select class="form-control" ng-change="filterSales()" id="status" ng-model="orderFilter.status"
ng-init="orderFilter.status = '_'">
<option value="_">all</option>
<option value="_not" class="text-danger">not delivered</option>
<option value="_part" class="text-info">partially delivered</option>
<option value="n-p" class="text-warning">not and partial</option>
<option value="_done" class="text-success">delivered</option>
</select>
在您的html中,您可以删除过滤器之外的内容
<tr ng-repeat="s in filteredList>
<td>...</td>
</tr>
很抱歉,我没有时间测试代码,但我希望您理解我的想法。如果您可能的状态不改变,您可以使用_“完成”作为选项值,将过滤掉“完成但不保留”和“部分” var app=angular.moduleapp,[]; app.controllercontroller,功能$scope{ $scope.orderFilter={ 地位:_ }; $scope.sales=[{ 状态:_不是, 项目:不是 }, { 状态:_部分, 项目:部分 }, { 状态:_完成, 项目:完成 } ]; }; 全部的 未交付 部分交付 不偏不倚 交付 {{orderFilter}} {{s.item}}
<tr ng-repeat="s in filteredList>
<td>...</td>
</tr>