Angularjs 过滤嵌套对象 [英] Angularjs filter nested object
本文介绍了Angularjs 过滤嵌套对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这样的角度嵌套对象.有没有办法过滤它的嵌套属性
I have in angular nested object like this. is there way how to filter it for nested property
<li ng-repeat="shop in shops | filter:search">
search.locations.city_id = 22
我只显示父元素但想同时过滤它,例如:
I'm showing only parent element but want to filter by both of it, like:
search =
category_id: 2
locations:
city_id: 368
[
name: "xxx"
category_id: 1
locations: [
city_id: 368
region_id: 4
,
city_id: 368
region_id: 4
,
city_id: 368
region_id: 4
]
,
name: "xxx"
category_id: 2
locations: [
city_id: 30
region_id: 4
,
city_id: 22
region_id: 2
]
]
推荐答案
是的,如果我正确理解了您的示例,您可以.
Yes, you can, if I understood your example properly.
根据您的集合的大小,最好计算您在 ng-repeat
中迭代的集合,这样过滤器就不会随着模型的变化而不断地进行.
Depending on the size of your collection it may be better to compute the collection you iterate over in ng-repeat
so that the filter isn't doing it constantly as the model changes.
如果我理解正确的话,你基本上是这样做的:
Basically you do something like this, if I understood you correctly:
$scope.search = function (shop) {
if ($scope.selectedCityId === undefined || $scope.selectedCityId.length === 0) {
return true;
}
var found = false;
angular.forEach(shop.locations, function (location) {
if (location.city_id === parseInt($scope.selectedCityId)) {
found = true;
}
});
return found;
};
这篇关于Angularjs 过滤嵌套对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文