У меня есть такая модель
public class City
{
public string Name {get; set;}
public List<Classified> Classifieds {get; set;}
public List<Area> Areas {get; set;}
}
В моем контроллере angualrJs, мне понравилось ниже
$scope.cities = data; // I'm getting data (array of city).
Теперь я пытаюсь фильтровать cities
на основе Classifieds(.length > 0)
и Areas (.length > 0)
как Areas (.length > 0)
ниже.
<tr ng-repeat="city in cities | filter: { classifieds: '!!' }"> -- Not Working.
<tr ng-repeat="city in cities | filter: { areas: '!!' }"> -- Not Working.
Я хочу что-то вроде этого
<tr ng-repeat="city in cities | filter: { areas.length >0 }"> -- Tried this one as well. Not Working.
Если переменная $scope.cities
содержит данные в следующем формате:
$scope.cities = [{name: 'a', classifieds: [], areas: []},
{name: 'b', classifieds: [], areas: [1]},
{name:'c', classifieds:[1], areas:[]}];
Вы можете создать настраиваемую функцию фильтра, такую как:
$scope.hasData = function(city) {
return city.areas.length > 0 || city.classifieds.length > 0;
};
Применение:
<td ng-repeat="city in cities | filter: hasData">{{city.name}}</td>
РЕДАКТИРОВАТЬ:
JSFiddle: https://jsfiddle.net/9sxeawr5/