фильтр angularjs в контроллере, где значение не пустое - PullRequest
0 голосов
/ 01 июня 2018

У меня есть массив объектов JSON, и я пытаюсь отфильтровать список только по тем объектам, для которых существует значение для определенного поля.

Поле, которое я хочу отфильтровать, может содержать практически все, поэтому нет ничего, что я действительно мог бы найти, с чем сопоставить, кроме того, где существует значение.

Мне нужно применить фильтр вangularjs controller.

Приведенное ниже работает, если я сделаю совпадение с определенным значением, таким как 'bob', но не все объекты будут иметь значение для 'newName'.

$scope.CorrectedNames = $filter('filter')($scope.dataList, { newName: 'bob' }).length;
console.log('Total Names to Update: '+$scope.totalCorrectedAccountNumbers.length);

I 'мы пробовали

newName: '!'

это возвращает ноль результатов.

newName: '!""'

это возвращает весь список json

, и это только мои две идеи, которые я выдвинул из поиска.

Значение поля не заполнено и не равно NULL, в противном случае я думаю, что сработает следующее.

newName: '!=null' 

1 Ответ

0 голосов
/ 03 июня 2018

Таким образом, вы не хотите показывать объекты со значением свойства newName, равным null или nullstring.Вы должны использовать чистый метод js .filter следующим образом:

$scope.CorrectedNames = $scope.dataList.filter(function(a) {
    if(a.newName) {
    return a.newName.trim().length !== 0;
    }
});

Делая это в массиве $ scope.CorrectedNames, вы получите все объекты из dataList , исключая newName с нулемили nullstring, или объекты без свойства newName.

Демо-версия Plunker

Другой способ заключается в том, что вы можете создать собственный фильтр, а внутри его реализации вы можете сделатьТо же, что и выше. Использование метода .filter () для фильтрации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...