Je souhaite utiliser un ng-click pour obtenir un morceau de HTML. Il y a aussi un événement ng-click dans ce HTML. J'utilise js pour trouver ce morceau de HTML et l'attribuer à une couche contextuelle. L'événement ng-click de ce code HTML n'est pas valide. D'accord, comment y remédier ?
$scope.readmore_maincomment = fonction(événement){
var html = $(event.target).parent(".subcomments").prev().html();
$(".subcomments_detail").find(".subcomment_con").html(html);
};
Le code est une abréviation. C'est le contenu obtenu de cette manière. La méthode peut être mal utilisée, et angulaire et jQuery sont mélangés. Qui peut me dire comment obtenir ce contenu html, et puis le ng-click in. le html peut aussi prendre effet
Angular traversera le DOM dans la phase initiale du démarrage, trouvera toutes les directives liées en HTML, les compilera et les liera, puis des instructions comme `v-click` lieront les événements de réponse à l'élément DOM où ils se trouvent . Si vous insérez directement la chaîne HTML dans le DOM, Angular n'aura aucune chance d'analyser les instructions dans cette chaîne HTML. Afin de résoudre ce problème, le service $compile intégré d'Angular.
Utilisation :
injecter le service $compile
$compile(htmlstring ou domelement)(scope)
Si vous compilez htmlstring, insérez enfin le retour après le lien dans le dom
$compile() renvoie une fonction de lien qui lie le modèle à une portée
Documentation officielle du site :
L'idée d'angularjs devrait essayer d'éviter d'utiliser le DOM. Vos besoins doivent être satisfaits par d'autres moyens, et vos objectifs peuvent être atteints grâce à la liaison de données, ou vous pouvez utiliser ng-template pour le faire.
Les opérations du DOM sont toutes dans les instructions. Vous devez écrire la structure DOM que vous souhaitez actuellement utiliser sous forme d'instructions, puis il y a des éléments dans les paramètres de la fonction de lien pour que vous puissiez les utiliser. la copie a ngclick. Il n'y aura aucun impact et cela prendra effet après la copie.