L'API avec laquelle je travaille renvoie ceci s'il n'y a aucun élément dans le tableau
items: []
S'il y a des éléments dans le tableau, il retourne quelque chose comme
items: [
{
name: 'Bla'
}
]
Dans mon modèle, je pense que je dois utiliser ng-if pour afficher/masquer un élément en fonction de la présence ou non de données.
<p ng-if="post.capabilities.items"><strong>Topics</strong>: <span ng-repeat="topic in post.capabilities.items">{{topic.name}}</p>
Cependant, je pourrais être totalement en dehors de la base, car c’est la première fois que je travaille dans Angular et il existe peut-être une bien meilleure façon de faire ce que j’essaie de faire.
post.capabilities.items
sera toujours défini car il s'agit d'un tableau vide. Si vous cochez post.capabilities.items.length
, il devrait fonctionner correctement car 0
est faux.
Vérifiez que la propriété length
du tableau est supérieure à 0
:
<p ng-if="post.capabilities.items.length > 0">
<strong>Topics</strong>:
<span ng-repeat="topic in post.capabilities.items">
{{topic.name}}
</span>
</p>
Les tableaux (objets) en JavaScript sont des valeurs de vérité. Par conséquent, votre vérification initiale <p ng-if="post.capabilities.items">
est toujours évaluée à true
, même si le tableau est vide.
Pour résoudre le problème null
/undefined
, essayez d'utiliser l'opérateur ?
pour vérifier l'existence:
<p ng-if="post?.capabilities?.items?.length > 0">
Si quelqu'un arrive sur cette page à la recherche d'une réponse Ionic Framework , assurez-vous d'utiliser *ngIf
:
<p *ngIf="post?.capabilities?.items?.length > 0">