J'ai un objet JS déclaré comme ça
$scope.items = {};
J'ai également une requête $ http qui remplit cet objet avec des éléments. Je voudrais détecter si cet élément est vide, il semble que ng-show le supporte ... J'entre
ng-show="items"
et comme par magie, cela fonctionne, j'aimerais aussi faire la même chose à partir d'un contrôleur mais je n'arrive pas à le faire fonctionner, il semble que je devrais peut-être parcourir l'objet pour voir s'il a des propriétés ou utiliser un lodash ou un soulignement .
Y a-t-il une alternative?
J'ai essayé
alert($scope.items == true);
mais il retourne toujours false, lorsque l'objet est créé et lorsqu'il est rempli avec $http
, donc cela ne fonctionne pas de cette façon.
angularjs
angularjs-scope
Martin
la source
la source
Réponses:
Utiliser un littéral d'objet vide n'est pas nécessaire ici, vous pouvez utiliser null ou undefined:
De cette façon,
ng-show
devrait continuer à fonctionner, et dans votre contrôleur, vous pouvez simplement faire:Et dans vos
$http
rappels, vous effectuez les opérations suivantes:la source
$scope.items = {available: false}
, etng-show="items.available"
, et dans votre contrôleur, vérifiez simplementif (items.available) {...}
.Ou vous pouvez rester simple en faisant quelque chose comme ceci:
la source
({} === $scope.items)
Dans un projet privé, a écrit ce filtre
usage:
essai:
Cordialement.
la source
un autre simple one-liner:
la source
Si vous ne pouvez pas avoir les éléments OBJ égaux à null, vous pouvez le faire:
et dans la vue, vous pouvez faire:
Tu peux faire
Uniquement si votre navigateur prend en charge ECMAScript 5. Par exemple, IE 8 ne prend pas en charge cette fonctionnalité.
Voir http://kangax.github.io/compat-table/es5/ pour plus d'informations
la source
une version plus propre de ceci pourrait être:
où le résultat ne sera pas défini si aucune propriété d'objet n'est définie.
la source
Ou, si vous utilisez lo-dash: _.empty (valeur).
"Vérifie si la valeur est vide. Les tableaux, chaînes ou arguments, les objets avec une longueur de 0 et les objets sans propres propriétés énumérables sont considérés comme" vides "."
la source
Vérifier l'objet vide
la source
vous pouvez vérifier la longueur des articles
la source
items
c'est un objet et que les objets n'ont pas de.length
propriété (généralement) - les tableaux les ont