OK, j'essaie de comprendre comment montrer mes divers boutons d'action pour chacun de mes éléments de la liste en fonction de la valeur de En outre, la solution devrait pouvoir prendre en charge plusieurs valeurs. Par exemple, le bouton Supprimer ne montrerait que pour peut-il être fait avec juste ng-show? p> item.status code>. Par exemple: je voudrais seulement montrer le bouton d'édition si
item.status code> est
'nouveau' code>. Quelle est la meilleure façon d'approcher cela?
'Nouveau' code> et
'"terminé" code>, mais pas pour
"en cours" code>. p>
4 Réponses :
faire quelque chose comme Je n'ai pas testé le code et ceci est juste une suggestion. p> p>
Vous avez plusieurs solutions:
ng-show / ng-masquer code> a > li>
-
ng-si code>
li >
ul> Vous pouvez voir les différences voici em> . P> < P> Pour ma directive NG-IF CODE>
est le meilleur. Comme il a retiré l'élément du DOM. P>
HTML: strong> p> xxx pré> JS: strong> < / p> xxx pré>
référence em> p>
- angularjs ng-si li>
- angularjs ng-show / ng-masquer li>
- index MDN de < / li>
ul> p>
Oui, mais le bouton de suppression serait quelque chose comme ça `ng-if =" item.status === "nouveau" || item.status === "Terminé" || item.status === "en cours" " > Ce qui est assez long.
Merci pour la réponse. C'était ce que je cherchais!
Je vois pourquoi tu es tous deux d'accord c'est le meilleur moyen. Il est un peu plus propre et plus facile à maintenir si les valeurs changent, vs les chasser dans la vue. Merci à vous deux.
Yup et comme je l'ai dit, si vous pensez que vous allez faire ce genre de chèques dans d'autres parties de votre application, mettez mieux les fonctions dans un service au lieu du contrôleur, pour la réévaluation. Idéalement, les contrôleurs ne sont que la colle entre la logique de vos services et votre vue.
Il y a plus d'une façon de le faire. Personnellement, j'aime le déclaratif qui signifie garder votre avis très descriptif et sans logique. Alors quelque chose comme ça.
ou utilisez puis dans votre contrôleur p> Qu'est-ce qui est bien à propos de ceci est votre fonction éditoriée pourrait être réutilisée dans d'autres directives. Je suppose que d'autres parties de votre vue dépendront de la modification / la suppression. Vous pouvez même mettre cette fonction dans un service pour réutiliser sur toute votre application. P> p>
C'est une excellente réponse. Je tenais cela plus tôt, mais je n'ai pas vraiment eu le savoir-faire. = D
ng-si est Code> p>
Même depuis que cela a été un moment depuis que l'OP a posé la question, ajouter mes deux cents au cas où quelqu'un d'autre a besoin d'une option plus facile qui consiste à utiliser le filtre angularjs .
Donc pour afficher uniquement des éléments où
item.status === Nouveau code> Utiliser: P> blockQuote>
xxx pré> Si sur l'autre main, vous voulez uniquement des éléments où
item.status! == Nouveau code> Utilisation: p> blockQuote>
xxx pré> p>