Mam zadeklarowany obiekt JS w ten sposób
$scope.items = {};
Mam również żądanie $ http, które wypełnia ten obiekt elementami. Chciałbym sprawdzić, czy ta pozycja jest pusta, wygląda na to, że ng-show obsługuje to ... Wchodzę
ng-show="items"
i magicznie to działa, chciałbym też zrobić to samo z kontrolera, ale nie wydaje mi się, żebym to działał, wygląda na to, że być może będę musiał iterować po obiekcie, aby sprawdzić, czy ma jakieś właściwości lub użyć lodash lub podkreślenia .
Czy jest alternatywa?
Próbowałem
alert($scope.items == true);
ale zawsze zwraca false, gdy obiekt jest tworzony i wypełniany $http
, więc nie działa w ten sposób.
angularjs
angularjs-scope
Jaskółka oknówka
źródło
źródło
Odpowiedzi:
Użyj pustego literału obiektu nie jest tutaj konieczne, możesz użyć wartości null lub undefined:
W ten sposób
ng-show
powinien działać dalej, aw swoim kontrolerze możesz po prostu:W swoich
$http
callbackach wykonujesz następujące czynności:źródło
$scope.items = {available: false}
ing-show="items.available"
, aw kontrolerze po prostu sprawdźif (items.available) {...}
.Lub możesz to uprościć, robiąc coś takiego:
źródło
({} === $scope.items)
W prywatnym projekcie napisał ten filtr
stosowanie:
testowanie:
pozdrowienia.
źródło
kolejny prosty jednolinijkowy:
źródło
Jeśli nie możesz mieć pozycji OBJ równych null, możesz to zrobić:
aw widoku możesz:
Możesz to zrobić
Tylko jeśli Twoja przeglądarka obsługuje ECMAScript 5. Na przykład IE 8 nie obsługuje tej funkcji.
Więcej informacji można znaleźć pod adresem http://kangax.github.io/compat-table/es5/
źródło
bardziej przejrzystą wersją może być:
gdzie wynik będzie niezdefiniowany, jeśli żadna właściwość obiektu nie zostanie ustawiona.
źródło
Lub, jeśli używasz lo-dash: _.empty (wartość).
„Sprawdza, czy wartość jest pusta. Tablice, łańcuchy lub obiekty argumentów o długości 0 i obiekty bez własnych wyliczalnych właściwości są uznawane za„ puste ”.
źródło
Sprawdź pusty obiekt
źródło
możesz sprawdzić długość przedmiotów
źródło
items
jest obiektem, a obiekty nie mają.length
właściwości (zwykle) - tablice je mają