Javascript 基于下拉列表的筛选表列 在线筛选 全部的 按产品类型划分的过滤器 全部的 {{lim.online} {{lim.producttype} vm.stockLimits值如下: 在线产品类型 男式衬衫 男鞋 女式上衣 儿童腰带 孩子们 .......... ..........
根据下拉列表(filter\u online select&filter\u productType select),需要筛选表中的数据。Javascript 基于下拉列表的筛选表列 在线筛选 全部的 按产品类型划分的过滤器 全部的 {{lim.online} {{lim.producttype} vm.stockLimits值如下: 在线产品类型 男式衬衫 男鞋 女式上衣 儿童腰带 孩子们 .......... ..........,javascript,angularjs,Javascript,Angularjs,根据下拉列表(filter\u online select&filter\u productType select),需要筛选表中的数据。 是否可以在angular脚本文件中编写一个自定义过滤器javascript函数,用于根据下拉选择过滤在线和产品类型?如果你能告诉我做这件事的想法,那就太好了。在AngularJS中,你可以在一个数组上堆叠任意数量的过滤器 尝试这样做: HTML: <form class="col2"> <label for="filter-
是否可以在angular脚本文件中编写一个自定义过滤器javascript函数,用于根据下拉选择过滤在线和产品类型?如果你能告诉我做这件事的想法,那就太好了。在AngularJS中,你可以在一个数组上堆叠任意数量的过滤器 尝试这样做: HTML:
<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>
<tr ng-repeat="lim in vm.stockLimits track by lim.id">
<td>{{lim.online}}</td>
<td>{{lim.producttype}}</td>
</tr>
vm.stockLimits values below:
ONLINE PRODUCT TYPE
Men Shirt
Men Shoe
Ladies Top
Kids belt
Kids
..........
..........
<select ng-model="vm.online" ng-options="online for online in vm.onlines" ng-change="vm.filterChanged()">
<option value="">All</option>
</select>
<select ng-model="vm.productType" ng-options="productType for productType in vm.productTypes" ng-change="vm.filterChanged()">
<option value="">All</option>
</select>
<tr ng-repeat="lim in vm.filteredStockLimits = vm.stockLimits | filterByOnline:vm.online
| filterByProductType:vm.productType track by lim.id">
在控制器中,您将数据读入初始
vm.stockLimits
数组,当任一选择框更改时,该数组将被过滤到vm.filteredStockLimits
。注意,您必须添加两个自定义筛选器(filterByOnline
和filterByProductType
)以按联机和产品类型筛选阵列。为此,您可以参考AngularJS文档:在AngularJS中,您可以在一个数组上堆叠任意数量的过滤器
尝试这样做:
HTML:
<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>
<tr ng-repeat="lim in vm.stockLimits track by lim.id">
<td>{{lim.online}}</td>
<td>{{lim.producttype}}</td>
</tr>
vm.stockLimits values below:
ONLINE PRODUCT TYPE
Men Shirt
Men Shoe
Ladies Top
Kids belt
Kids
..........
..........
<select ng-model="vm.online" ng-options="online for online in vm.onlines" ng-change="vm.filterChanged()">
<option value="">All</option>
</select>
<select ng-model="vm.productType" ng-options="productType for productType in vm.productTypes" ng-change="vm.filterChanged()">
<option value="">All</option>
</select>
<tr ng-repeat="lim in vm.filteredStockLimits = vm.stockLimits | filterByOnline:vm.online
| filterByProductType:vm.productType track by lim.id">
在控制器中,您将数据读入初始
vm.stockLimits
数组,当任一选择框更改时,该数组将被过滤到vm.filteredStockLimits
。注意,您必须添加两个自定义筛选器(filterByOnline
和filterByProductType
)以按联机和产品类型筛选阵列。为此,您可以参考AngularJS文档:我在您的ng repeat
上添加了一个自定义过滤器,这样它就可以从下拉选择中动态过滤出选定的值
下面是重复的ng
:
var filterChanged = function() {
var filtered = $filter('filterByOnline')(vm.stockLimits, vm.online);
vm.filteredStockLimits = $filter('filterByProductType')(filtered, vm.productType);
}
找到下面的工作代码段
angular.module(“myApp”,[])
.controller(“myCtrl”,函数($scope){
var vm=这个;
vm.onlines=[“男性”、“儿童”、“女性”];
vm.productTypes=[“衬衫”、“鞋子”、“上衣”];
vm.stockLimits=[{
id:1,
在线:“男人”,
产品类型:“衬衫”
}, {
id:2,
在线:“男人”,
产品类型:“鞋”
}, {
id:3,
在线:“孩子们”,
产品类型:“皮带”
}, {
id:4,
在线:“女士们”,
产品类型:“顶部”
}]
})
在线筛选
全部的
按产品类型划分的过滤器
全部的
{{lim.online}
{{lim.productType}
我在您的ng repeat
上添加了一个自定义过滤器,它可以从下拉选择中动态筛选出选定的值
下面是重复的ng
:
var filterChanged = function() {
var filtered = $filter('filterByOnline')(vm.stockLimits, vm.online);
vm.filteredStockLimits = $filter('filterByProductType')(filtered, vm.productType);
}
找到下面的工作代码段
angular.module(“myApp”,[])
.controller(“myCtrl”,函数($scope){
var vm=这个;
vm.onlines=[“男性”、“儿童”、“女性”];
vm.productTypes=[“衬衫”、“鞋子”、“上衣”];
vm.stockLimits=[{
id:1,
在线:“男人”,
产品类型:“衬衫”
}, {
id:2,
在线:“男人”,
产品类型:“鞋”
}, {
id:3,
在线:“孩子们”,
产品类型:“皮带”
}, {
id:4,
在线:“女士们”,
产品类型:“顶部”
}]
})
在线筛选
全部的
按产品类型划分的过滤器
全部的
{{lim.online}
{{lim.productType}
您可以使用ng show
或ng if
过滤数据
无需创建自定义过滤器
像这样的
{{lim.online}
{{lim.productType}
您可以使用ng show
或ng if
过滤数据
无需创建自定义过滤器
像这样的
{{lim.online}
{{lim.productType}
您可以更好地使用过滤器的npm包
安装:-npm i ng2搜索过滤器
将此导入module.ts
从“ng2搜索筛选器”导入{Ng2SearchPipeModule}
在html中:*ngFor=“让经销商的经销商数据|过滤器:状态|过滤器:范围”您可以更好地使用过滤器的npm包 安装:-npm i ng2搜索过滤器 将此导入module.ts 从“ng2搜索筛选器”导入{Ng2SearchPipeModule}
在html中:*ngFor=“let dealerdata of Dealer_data | filter:Status | filter:Range”效果很好,但productType可以为空。如果productType为空,则筛选未正确进行。@User205706正常。你能用我上面的代码来指出到底发生了什么吗?明天早上我会找你帮忙的。。此外,如果答案有帮助,请将其标记为“已接受”。。谢谢虽然有帮助,但productType在输入中可以为空。例如{id:5,online:“Kids”,productType:'}@user205706我试着从
Kids
中删除它,过滤器对我来说效果很好。你到底怎么了?如果我有输入{id:5,在线:“Kids”,productType:null}。它没有按预期进行筛选。它工作得很好,但productType可以为null。如果productType为空,则筛选未正确进行。@User205706正常。你能用我上面的代码来指出到底发生了什么吗?明天早上我会找你帮忙的。。此外,如果答案有帮助,请将其标记为“已接受”。。谢谢虽然有帮助,但productType在输入中可以为空。例如{id:5,联机:“Kids”,产品类型:'}@user205706,我尝试从Kids
,过滤器中删除它