Ng-click ne fonctionne pas dans un contenu créé dynamiquement

J'ai cette fonction dans Angular où j'ajoute une nouvelle diapositive avec un ng-click.

var addSlide = function($scope, slideIndex, $event) { slideIndex++; var slider = angular.element('.slick-slider'); var currentSlide = slider.slick('slickCurrentSlide'); slider.slick('slickAdd', '<div class="slide" ng-click="addPhoto(); $event.stopPropagation();"><input type="file" class="camera-trigger" accept="image/*"><img class="photo-img" src="" /></div>'); }; 

Malheureusement, les événements ng-click créés dynamiquement ne fonctionnent pas ( ng-click ne fonctionne pas à partir de HTML généré dynamiquement ), comment puis-je réparer cela dans mon cas, car c'est une fonction dans un contrôleur au lieu d'une directive?

Vous devez ajouter $ compile service ici, qui liera les directives angulaires comme ng-click à la portée de votre contrôleur. Quelque chose comme:

 var divTemplate = '..your div template'; var temp = $compile(divTemplate)($scope); 

Ensuite, ajoutez-le au HTML:

 angular.element(document.getElementById('foo')).append(temp); 

Vous pouvez également lier l'événement à la div comme suit:

  var div = angular.element("divID"); div.bind('click', $scope.addPhoto());