Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于下拉列表的筛选表列 在线筛选 全部的 按产品类型划分的过滤器 全部的 {{lim.online} {{lim.producttype} vm.stockLimits值如下: 在线产品类型 男式衬衫 男鞋 女式上衣 儿童腰带 孩子们 .......... .........._Javascript_Angularjs - Fatal编程技术网

Javascript 基于下拉列表的筛选表列 在线筛选 全部的 按产品类型划分的过滤器 全部的 {{lim.online} {{lim.producttype} vm.stockLimits值如下: 在线产品类型 男式衬衫 男鞋 女式上衣 儿童腰带 孩子们 .......... ..........

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-

根据下拉列表(filter\u online select&filter\u productType select),需要筛选表中的数据。
是否可以在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
,过滤器中删除它