使用输入过滤字段并在angularJS中进行下拉

JSNinja

我正在尝试使用ng-repeat过滤json。但是根据要求,我需要使用输入字段和下拉菜单来筛选数据。

下面是我的代码:

HTML:

<input ng-model="queryFilter" placeholder="Search"/><br>
<select ng-model="stateFilter">
   <option value="0" selected>Select State</option>
   <option value="City1 State1">City1 State1</option>
   <option value="City2 State2">City2 State2</option>
   <option value="City3 State3">City3 State3</option>           
   <option value="City4 State4">City4 State4</option>   
</select>

<div style="background:#eee;" ng-repeat="emp in empList | filter:query">
    <p style="margin-top:10px;">{{emp.organisation}}</p>
    <p>{{emp.number}}</p>
    <p>{{emp.location.city}} {{emp.location.state}}</p>
</div>


Javascript:

var testApp = angular.module("Testing",[]);
testApp.controller("empCtrl",function($scope){
$scope.queryFilter = '';
$scope.stateFilter = '';

$scope.query = function (emp) {
return emp.organisation.indexOf($scope.queryFilter)!=-1 || 
    emp.number.indexOf($scope.queryFilter)!=-1 || 
    emp.organisation.toLowerCase().indexOf($scope.queryFilter)!=-1 || 
    emp.number.toLowerCase().indexOf($scope.queryFilter)!=-1  || 
    (emp.location.city+" "+emp.location.state).indexOf($scope.stateFilter)!=-1 ;
}
$scope.empList = [
    {"organisation":"Organisation1","number":"7ZDG54","location":{"city":"City1","state":"State1"}},
    {"organisation":"Organisation2","number":"9D4F3G","location":{"city":"City2","state":"State2"}},
    {"organisation":"Organisation3","number":"1AS2S3","location":{"city":"City3", "state":"State3"}},
    {"organisation":"Organisation4","number":"4A5T7D","location":{"city":"City3","state":"State4"}},
];
$scope.orderProp="name";
});

JSFiddle:

我可以使用输入框进行过滤,但下拉菜单不起作用。

注意:位置由两个参数(城市和州)组成,一个州可能有多个城市。

任何帮助表示赞赏。谢谢。

JSNinja

正如Brian指出的那样,我实现逻辑的方式存在问题。我已经解决了这个问题。有关解决方案,请参考JS小提琴。

JSFiddle

`$scope.query = function (emp) {

    if($scope.queryFilter == ''){
        return (emp.location.city+" "+emp.location.state).indexOf($scope.stateFilter)>-1 ;
    }
    else if($scope.stateFilter == ''){   
        return (emp.organisation+" "+emp.number).toLowerCase().indexOf($scope.queryFilter.toLowerCase())!=-1;
    }else{
        return ((emp.organisation+" "+emp.number).toLowerCase().indexOf($scope.queryFilter.toLowerCase())!=-1)
        && ((emp.location.city+" "+emp.location.state).indexOf($scope.stateFilter)>-1);
    }      
}`

谢谢您的帮助 :)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在AngularJS中使用搜索字段进行过滤

来自分类Dev

使用AngularJS和Jade在navbar中进行Bootstrap下拉

来自分类Dev

使用外键字段在Slick中进行过滤

来自分类Dev

计数相关并在SQLAlchemy中进行过滤

来自分类Dev

如何使用angularjs从字典词典中进行过滤

来自分类Dev

输入的输入字段值的过滤下拉值

来自分类Dev

使用两个下拉输入获取JavaScript进行过滤

来自分类Dev

使用AngularJS中的单个输入过滤多个字段

来自分类Dev

下拉菜单中的输入字段上的停止单击事件(AngularJS过滤器元素)

来自分类Dev

在Razor中使用MVC4中的复选框从下拉列表中进行过滤

来自分类Dev

使用If条件选择多个字段,并在mysql中进行左连接-抛出错误

来自分类Dev

如何使用 Gson 解析深层嵌套 json 对象中的字段并在 android 中进行改造?

来自分类Dev

如何使用多个输入文件并在python中进行并行处理?

来自分类Dev

需要更改硬代码并在此查询中进行过滤

来自分类Dev

使用删除单击的元素并在angularjs中进行作用域定义

来自分类Dev

使用删除单击的元素并在angularjs中进行作用域定义

来自分类Dev

在DataTables的单个下拉列表中进行多列过滤

来自分类Dev

使用belongs_to关联的整数字段在RailsAdmin中进行过滤

来自分类Dev

动态添加选择字段并在VueJS中进行验证

来自分类Dev

使用下拉菜单仅按一个字段进行过滤

来自分类Dev

使用LINQ在MVC Razor中进行过滤

来自分类Dev

使用linq查询从列表中进行过滤

来自分类Dev

AngularJs:设置条件最小值和最大值以在数字输入字段中进行验证

来自分类Dev

AngularJS-使用下拉菜单填充输入文本字段

来自分类Dev

AngularJS-使用下拉菜单填充输入文本字段

来自分类Dev

使用PHP将下拉值(产品)与输入字段值(数量)相乘以获取并在HTML上打印结果

来自分类Dev

AngularJS传递变量以在控制器中进行过滤

来自分类Dev

如何在angularjs控制器中进行反向过滤

来自分类Dev

在Haskell中进行过滤

Related 相关文章

  1. 1

    在AngularJS中使用搜索字段进行过滤

  2. 2

    使用AngularJS和Jade在navbar中进行Bootstrap下拉

  3. 3

    使用外键字段在Slick中进行过滤

  4. 4

    计数相关并在SQLAlchemy中进行过滤

  5. 5

    如何使用angularjs从字典词典中进行过滤

  6. 6

    输入的输入字段值的过滤下拉值

  7. 7

    使用两个下拉输入获取JavaScript进行过滤

  8. 8

    使用AngularJS中的单个输入过滤多个字段

  9. 9

    下拉菜单中的输入字段上的停止单击事件(AngularJS过滤器元素)

  10. 10

    在Razor中使用MVC4中的复选框从下拉列表中进行过滤

  11. 11

    使用If条件选择多个字段,并在mysql中进行左连接-抛出错误

  12. 12

    如何使用 Gson 解析深层嵌套 json 对象中的字段并在 android 中进行改造?

  13. 13

    如何使用多个输入文件并在python中进行并行处理?

  14. 14

    需要更改硬代码并在此查询中进行过滤

  15. 15

    使用删除单击的元素并在angularjs中进行作用域定义

  16. 16

    使用删除单击的元素并在angularjs中进行作用域定义

  17. 17

    在DataTables的单个下拉列表中进行多列过滤

  18. 18

    使用belongs_to关联的整数字段在RailsAdmin中进行过滤

  19. 19

    动态添加选择字段并在VueJS中进行验证

  20. 20

    使用下拉菜单仅按一个字段进行过滤

  21. 21

    使用LINQ在MVC Razor中进行过滤

  22. 22

    使用linq查询从列表中进行过滤

  23. 23

    AngularJs:设置条件最小值和最大值以在数字输入字段中进行验证

  24. 24

    AngularJS-使用下拉菜单填充输入文本字段

  25. 25

    AngularJS-使用下拉菜单填充输入文本字段

  26. 26

    使用PHP将下拉值(产品)与输入字段值(数量)相乘以获取并在HTML上打印结果

  27. 27

    AngularJS传递变量以在控制器中进行过滤

  28. 28

    如何在angularjs控制器中进行反向过滤

  29. 29

    在Haskell中进行过滤

热门标签

归档