У меня есть объект JS, объявленный так
$scope.items = {};
У меня также есть запрос $ http, который заполняет этот объект элементами. Я хотел бы определить, пуст ли этот элемент, похоже, что ng-show поддерживает это ... Я ввожу
ng-show="items"
и волшебным образом это работает, я также хотел бы сделать то же самое с контроллера, но я не могу заставить его работать, похоже, мне, возможно, придется перебирать объект, чтобы увидеть, есть ли у него какие-либо свойства, или использовать lodash или подчеркивание .
Есть ли альтернатива?
Я действительно пробовал
alert($scope.items == true);
но он всегда возвращает false, когда объект создается и когда он заполняется $http
, поэтому он не работает таким образом.
angularjs
angularjs-scope
Мартин
источник
источник
Ответы:
Использовать пустой литерал объекта здесь не обязательно, вы можете использовать null или undefined:
Таким образом, он
ng-show
должен продолжать работать, и в вашем контроллере вы можете просто сделать:И в своих
$http
обратных вызовах вы делаете следующее:источник
$scope.items = {available: false}
, иng-show="items.available"
, в контроллере просто проверитьif (items.available) {...}
.Или вы могли бы упростить, сделав что-то вроде этого:
источник
({} === $scope.items)
В частном проекте a написал этот фильтр
использование:
тестирование:
С уважением.
источник
еще один простой однострочный:
источник
Если у вас не может быть элементов OBJ, равных нулю, вы можете сделать это:
и в представлении вы можете:
Ты можешь сделать
Только если ваш браузер поддерживает ECMAScript 5. Например, IE 8 не поддерживает эту функцию.
См. Http://kangax.github.io/compat-table/es5/ для получения дополнительной информации.
источник
более чистая версия этого может быть:
где результат будет неопределенным, если свойство объекта не задано.
источник
Или, если используется нижнее тире: _.empty (значение).
«Проверяет, является ли значение пустым. Массивы, строки или объекты аргументов с длиной 0 и объекты без собственных перечислимых свойств считаются« пустыми ».
источник
Проверить пустой объект
источник
вы можете проверить длину предметов
источник
items
это объект, а объекты не имеют.length
свойств (обычно) - они есть в массивах