AngularJS – Exécutez une directive personnalisée après ng-bind-html

J'ai un scénario que je souhaite exécuter une directive personnalisée sur le DOM que ng-bind-html crée.

En principe, je dois personnaliser le comportement de la balise html <a> car le html en cours de chargement est dangereux et lorsque l'utilisateur clique sur le lien pour exécuter certaines fonctions avant que quelque chose ne se produise, aka, l'événement de clic de jqLite.

Donc, mon idée originale a été de créer une directive qui modifie le comportement de tout <a> dans le conteneur que j'ai mis l'attribut de ma directive.

Cela fonctionne bien, jusqu'à ce que je combine avec ng-bind-html , ma directive s'exécute avant que ng-bind-html compile la chaîne en html et attaché au DOM.

Alors, est-ce que n'importe quelle façon d'exécuter ma directive personnalisée après la course ng-bind-html ?

DEMO

HTML:

 <div ng-app="myApp" ng-controller="myCtrl"> <div ng-bind="sometext" my-directive>before</div> </div> 

Manette:

 angular.module('myApp', []); angular.module('myApp').controller('myCtrl', function($scope) { $scope.sometext="stuff here"; }); 

Directif:

 angular.module('myApp').directive('myDirective', function() { return { priority: 10, // adjust this value ;) link: function(scope,element,attrs) { scope.$watch(attrs.ngBind, function(newvalue) { console.log("element ",element.text()); }); } }; }); 

Utilisez la propriété de priority dans la directive pour exécuter votre code après mg-bind