过滤同一参数的两个值

时间:2015-03-27 01:49:45

标签: angularjs angularjs-filter

在AngularJS中,我想知道是否可以使用两个可能的值过滤视图列的数据。所以...如果我将参数值传递给页面控制器,我想将数据限制为特定值......

Data:
Product        Status
Item 1         Active
Item 2         Planned
Item 3         Completed
Item 4         Cancelled

如果我只想要一个值,我可以传递routeParams,例如filterCol,filterVal,因此以下只会显示处于Active状态的项目:

/programs/status/Active/

app.controller('AllItemsController', function($scope,$http,$rootScope,$routeParams){
$scope.tableFilter = {};
    if($routeParams.filterCol && $routeParams.filterVal){
        $scope.tableFilter[$routeParams.filterCol] = $routeParams.filterVal;
    }
});

我的XML看起来类似于:

<table class="table table-bordered table-condensed table-hover" ts-wrapper
    <thead>
        <tr>
            <th ts-criteria="itmName | lowercase">Item Name</th>
            <th ts-criteria="status">Status</th>
        </tr>
        <tr>
          <th><input type="text" class="form-control input-sm" ng-model="tableFilter.itmName"></th>
          <th><input type="text" class="form-control input-sm" ng-model="tableFilter.status"></th>
        </tr>
    </thead>
    <tbody>
            <tr ng-repeat="it in allItemData | filter: tableFilter" ts-repeat ">
                <td>{{it.itmName}}</td>
                <td>{{it.status}}</td>
            </tr>
     </body>
</table>

现在,如果我想发送一个像“ActPlan”这样的值,我该如何更改控制器?并显示所有活动或计划的项目? (例如:/ programs / status / ActPlan /)

我想我不得不改变$ scope.tableFilter的设置方式(通过检查$ routeParams.filterVal的值),但是我无法确定如何设置tablefilter而无法找到帮我的例子。我尝试将其设置为[&#39; Active,Planned&#39;],但这并没有带来任何好处。

1 个答案:

答案 0 :(得分:1)

如果您有多个条件,则可以使用过滤器功能,例如thread