Angularjs 使用数组中的值筛选ng重复
我有这张桌子,上面有一张桌子Angularjs 使用数组中的值筛选ng重复,angularjs,Angularjs,我有这张桌子,上面有一张桌子 ng-repeat="project in projects" 我在项目中有一处房产,prj_city。我想过滤这个值 我可以这样做: ng-repeat="project in projects | filter={prj_city: <value>} ng repeat=“项目中的项目|过滤器={prj_城市:} 但是我希望是一个包含多个城市的数组,而不是一个字符串。有什么简单的方法可以做到这一点,或者我必须在我的控制器中手动执行此筛选吗?您需
ng-repeat="project in projects"
我在项目中有一处房产,prj_city
。我想过滤这个值
我可以这样做:
ng-repeat="project in projects | filter={prj_city: <value>}
ng repeat=“项目中的项目|过滤器={prj_城市:}
但是我希望
是一个包含多个城市的数组,而不是一个字符串。有什么简单的方法可以做到这一点,或者我必须在我的控制器中手动执行此筛选吗?您需要在控制器上创建一个筛选函数。类似于:
$scope.filteredCities = function(city) {
return ($scope.userFilteredCities.indexOf(city) !== -1);
};
$scope.userFilteredCities;//List of filtered cities
最有可能的是,控制器中的自定义过滤器应足够简单,如下所示:
var filteredCities = ["LosAngelos", "etc.."];
$scope.arrayFilter = function(project) {
for (var i = 0; i < filteredCities.length; i++) {
if (filteredCities[i] == project.prj_city)
return true;
}
return false
}
在控制器中定义以下功能:
// use a map for faster filtering
var acceptedCityMap = {};
angular.forEach(acceptedCities, function(city) {
// case insensitive search. But you're not forced to
acceptedCityMap[city.toLowerCase()] = true;
});
$scope.isProjectedAccepted = function(project) {
// case insensitive search. But you're not forced to
return acceptedCityMap[project.prj_city.toLowerCase()];
}
在你看来:
ng-repeat="project in projects | filter:isProjectAccepted"
ng-repeat="project in projects | filter:isProjectAccepted"