gpt4 book ai didi

javascript - 使用输入过滤字段并在angularJS中下拉

转载 作者:行者123 更新时间:2023-11-28 01:26:36 24 4
gpt4 key购买 nike

我正在尝试使用 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:

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

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

感谢任何帮助。谢谢。

最佳答案

正如 Brian 指出的那样,我实现逻辑的方式存在问题。我已经解决了这个问题。引用 JS fiddle 解决。

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);
}
}`

感谢您的帮助:)

关于javascript - 使用输入过滤字段并在angularJS中下拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31832650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com