0
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl as vm">
<form class="col2">
<label for="filter-online">
Filter by Online
</label>
<div class="select">
<select id="filter-online" ng-model="vm.online" class="form-control" ng-options="online for online in vm.onlines">
<option value="">All</option>
</select>
</div>
</form>
<form class="col2">
<label for="filter-productType">
Filter by Product Type
</label>
<div class="select">
<select id="filter-productType" ng-model="vm.productType" class="form-control" ng-options="productType for productType in vm.productTypes">
<option value="">All</option>
</select>
</div>
</form>
<table style="margin-top: 30px">
<tr ng-repeat="lim in vm.stockLimits | filter:{online:vm.online && vm.online !== '' ? vm.online : '', productType: vm.productType && vm.productType !== '' ? vm.productType : ''}">
<td>{{lim.online}}</td>
<td>{{lim.productType}}</td>
</tr>
</table>
</div>
angular.module("myApp", [])
.controller("myCtrl", function($scope) {
var vm = this;
vm.onlines = ["Men", "Kids", "Ladies"];
vm.productTypes = ["Shirt", "Shoe", "Belt", "Top"];
vm.stockLimits = [{
id: 1,
online: "Men",
productType: "Shirt"
}, {
id: 2,
online: "Men",
productType: "Shoe"
}, {
id: 3,
online: "Kids",
productType: "Belt"
}, {
id: 4,
online: "Ladies",
productType: "Top"
},
{
id: 5,
online: "Kids",
productType: null
}]
})
我想过滤基于filter-online的数据& filter-productType下拉菜单。 网上总是有一些数据,但productType可以为空值。当我通过孩子过滤时,具有空值的productType没有正确过滤。 我需要像结果如下,如果我用“孩子”过滤。表空列过滤器角度Js
Kids Belt
Kids
但是,我越来越只有一排 Kids Belt
。
这伟大的工作。谢谢。 – user2057006
是否可以编写自定义过滤器函数而不是使用内联过滤器函数?我是新手前端框架。如果我得到自定义过滤器功能将会有所帮助。我觉得最好的做法是将函数移动到控制器并从html模板调用自定义过滤器函数。 – user2057006
是的,当然你可以做你自己的过滤器!你可以在这里找到文档(https://docs.angularjs.org/guide/filter)。它不会在你的控制器中,而是作为模块的一部分声明为过滤器。 –