如何过滤angularjs中的数据?
How to filter the data in angularjs?
我正在尝试根据 firstname
和 title
属性过滤数据,但它没有过滤。
<label>by Name
<input type="text" ng-model="searchText.data.firstname"></label> |
<label>by Title
<select name="title">
<option value="">All</option>
<option value="">Zone Manager</option>
<option value="">Logistic agent</option>
</select></label>
<hr/>
<div ng-repeat="accDetails in acct_list | filter:searchText">
{{accDetails.data.firstname}} |
{{accDetails.data.lastname}} |
{{accDetails.title}}
</div>
JSON数据为:
$scope.acct_list = {
"0": {
"data": {
"firstname": "maeli",
"lastname": "mad",
//...
},
"title": "Shop"
},
"1": {
"data": {
//...
},
"title": "hotel"
}
}
这是我的plnkr
过滤不起作用的原因是因为filter
只对数组有效,而你的acct_list
不是数组。
您可以将数据更改为数组:
$scope.acct_list = [
{
"data": {
"firstname": "maeli",
"lastname": "mad",
//...
},
"title": "Shop"
},
{
...
}
]
或者,在控制器中排列成一个数组,然后ng-repeat
覆盖它。
这是关于此主题的另一个相关 SO question。
此外,不要忘记将 ng-model="searchText.title"
添加到 <select>
并相应地填写 <option>
值。
我正在尝试根据 firstname
和 title
属性过滤数据,但它没有过滤。
<label>by Name
<input type="text" ng-model="searchText.data.firstname"></label> |
<label>by Title
<select name="title">
<option value="">All</option>
<option value="">Zone Manager</option>
<option value="">Logistic agent</option>
</select></label>
<hr/>
<div ng-repeat="accDetails in acct_list | filter:searchText">
{{accDetails.data.firstname}} |
{{accDetails.data.lastname}} |
{{accDetails.title}}
</div>
JSON数据为:
$scope.acct_list = {
"0": {
"data": {
"firstname": "maeli",
"lastname": "mad",
//...
},
"title": "Shop"
},
"1": {
"data": {
//...
},
"title": "hotel"
}
}
这是我的plnkr
过滤不起作用的原因是因为filter
只对数组有效,而你的acct_list
不是数组。
您可以将数据更改为数组:
$scope.acct_list = [
{
"data": {
"firstname": "maeli",
"lastname": "mad",
//...
},
"title": "Shop"
},
{
...
}
]
或者,在控制器中排列成一个数组,然后ng-repeat
覆盖它。
这是关于此主题的另一个相关 SO question。
此外,不要忘记将 ng-model="searchText.title"
添加到 <select>
并相应地填写 <option>
值。