J'ai une boucle simple avec ng-repeat
comme ceci:
<li ng-repeat='task in tasks'>
<p> {{task.name}}
<button ng-click="removeTask({{task.id}})">remove</button>
</li>
Il y a une fonction dans le contrôleur $scope.removeTask(taskID)
.
Autant que je sache, Angular rendra d'abord la vue et la remplacera interpolée {{task.id}}
par un nombre, puis, lors d'un événement de clic, évaluera la ng-click
chaîne.
Dans ce cas, ng-click
obtient totalement ce qui est attendu, c'est-à-dire: ng-click="removeTask(5)".
Cependant ... il ne fait rien.
Bien sûr, je peux écrire un code à obtenir à task.id
partir du $tasks
tableau ou même du DOM, mais cela ne ressemble pas à la méthode angulaire.
Alors, comment peut-on ajouter du contenu dynamique à une ng-click
directive à l'intérieur d'une ng-repeat
boucle?
angularjs
ng-repeat
angularjs-ng-click
Paweł Szymański
la source
la source
ng-click
expression n'utilise pas de parenthèses, c'estng-click="taskData.currentTaskId = task.id"
Une chose qui m'a vraiment accroché, c'est quand j'ai inspecté ce html dans le navigateur, au lieu de le voir étendu à quelque chose comme:
J'ai vu:
Cependant, ce dernier fonctionne!
C'est parce que vous êtes dans le "monde angulaire", quand à l'intérieur de ng-click = "" Angular tout prêt connaît task.id comme vous êtes à l'intérieur de son modèle. Il n'est pas nécessaire d'utiliser la liaison de données, comme dans {{}}.
De plus, si vous souhaitez passer l'objet de tâche lui-même, vous pouvez aimer:
la source
Il convient également de noter, pour les personnes qui trouvent cela dans leurs recherches, est-ce ...
Notez la valeur de
ng-click
. Le paramètre transmis àgoTo()
est une chaîne d'une propriété de l'objet de liaison (lebutton
), mais il n'est pas entouré de guillemets. On dirait qu'AngularJS gère cela pour nous. Je me suis accroché là-dessus pendant quelques minutes.la source
cela marche. Merci. J'injecte du HTML personnalisé et le compile en utilisant angulaire dans le contrôleur.
la source
Les réponses ci-dessus sont excellentes. Vous pouvez consulter l'exemple de code complet suivant afin de savoir exactement comment utiliser
la source
HTML:
Script Java:
la source
Voici la répétition ng avec la fonction de clic ng et à ajouter avec le curseur
la source