Code de la directive
mymodule.directive('eicon', function(){ return { restrict: 'E', scope: { attr: '=' }, template: "test " + attr.name } });
Html
<tr ng-repeat="e in entities"> <td><eicon attr="e"></eicon></td> </tr>
J'ai cette erreur: ReferenceError: attr is not defined
. Qu'est-ce qui ne va pas?
attr
est accessible dans la portée, vous pouvez donc accéder à scope.attr
dans votre contrôleur ou phase de liaison, ou {{attr}}
dans les modèles. Une solution simple consiste à changer votre modèle pour
mymodule.directive('eicon', function(){ return { restrict: 'E', scope: { attr: '=' }, template: "test {{attr.name}}", link: function (scope, element, attrs) { console.log(scope.attr); }, controller: function (scope) { console.log(scope.attr); } } });
Étant donné que vous scope.attr
propriété de portée isolée, vous devriez pouvoir accéder à scope.attr
dans un modèle comme ceci:
mymodule.directive('eicon', function(){ return { restrict: 'E', scope: { attr: '=' }, template: "test {{attr.name}}" } });