I m actually trying to include some directives in my dom from a user click on a list.
Here's the list :
$scope.listModules = [
{libelle: "Utilisateurs connectés", template: "<div class='user-connecte'></div>", drag: true},
{libelle: "utilisateur temps de passe en zone", template: "<div class='user-graph-temps-attente'></div>", drag: true},
{libelle: "Nombre d'anomalies", template: "<div class='nombre-anomalie'></div>", drag: true},
{libelle: "Tableau de prestations", template: "<div class='prestation-tableau'></div>"},
{libelle: "Graph de prestations camembert", template: "<div class='prestation-graph-camembert'></div>", drag: true},
{libelle: "Tableau de traitements", template: "<div class='traitement-tableau'></div>", drag: true},
{libelle: "Graph de traitement à granularité", template: "<div class='traitement-graph-granularity'></div>", drag: true}
];
I display it in a ng-repeat list, and I cant use the simple :
ng-bind-html or ng-bind-html-unsafe
In fact, they display the HTML tag in the DOM, but the content is not loaded.
Here's a sample directive concerning my app :
angular.module('app')
.directive('userConnecte', function ($compile) {
return {
restrict: 'EAC',
templateUrl: 'tpl/directive/UserConnecteDirective.html'
};
});
NB : If I use my directive outside the list, it works like a charm. Thanks for advance
Here's the HTML content :
<div class="col-md-4" style="height:380px;"
ng-repeat="currentModule in listeCurrentModule" data-drag="{{currentModule.drag}}"
data-jqyoui-options="{revert: 'invalid'}" ng-model="listeCurrentModule"
jqyoui-draggable="{index: {{$index}},animate:true}">
<div ng-bind-html="currentModule.template">
</div>
</div>
Can you help me ?
EDITED :
I tried something with compile, but it seems that it's a bit different using templateUrl :-o
here's my new try :
angular.module('app')
.directive('userConnecte', function ($compile) {
return {
restrict: 'EAC',
templateUrl: 'tpl/directive/UserConnecteDirective.html',
replace: true,
link: function (scope, ele, attrs) {
scope.$watch(attrs.userConnecte, function (html) {
ele.html(html);
$compile(ele.contents())(scope);
});
}
};
});
Thanks for advance