我有一个带选项1和选项2的选择框; 我有一个table1,column2,column3,column4的表。 Column2和column3是数字字段。
1)我希望我在select-box中选择了option1,该表显示了column2中所有fileld> 0的行,而column3的所有字段都是== 0
2)我希望我在选择框中选择了option2,该表显示了column2中所有fileld的行== 0且column3的所有字段都是> 0
例如
select class="form-control" name="optionsSelect" ng-model="ctrl.table.filterParams.optionSelect"
ng-options="option for option in ctrl.ctx.option">
</select>
<div class="bt-table">
<table class="table table-striped" ng-table="ctrl.tableParams" id="exampleTable">
<thead>
<tr>
<th ng-repeat="item in items"><p ng-bind-html="item"></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in ctrl.table.data">
<td><a>{{item.column1}}</a></td>
<td>{{item.column2}}</td>
<td>{{item.column3}}</td>
<td>{{item.column4}}</td>
<td>{{item.column5| date: 'dd/MM/yyyy'}}</td>
<td>{{item.column6| currency : "" | currencyformat }}</td>
</span></td>
<td>{{item.column7}}</td>
<td>
{{item.column8}}
</td>
</tr>
</tbody>
</table>
感谢您的帮助
答案 0 :(得分:1)
使用角度&#34;过滤器&#34;过滤。
将其放入您的控制器
ctrl.filterCriteria = function (item) {
if (ctrl.table.filterParams.optionSelect == option1) {
return item.column2 > 0 && item.column3 == 0;
} else if (ctrl.table.filterParams.optionSelect == option2) {
return item.column2 == 0 && item.column3 > 0
} else {
// Display all items
return true;
}
};
在模板中更改此内容:
<tr ng-repeat="item in ctrl.table.data | filter:ctrl.filterCriteria">
这样的事情应该有效,我无法测试它,因为我没有测试数据。如果您有任何问题,请添加一个jsfiddle,我会看看它。