Je cherche à mettre en place un mécanisme simple de mise en évidence dans une table de données:communication interne-directive sur toutes les instances répétées d'une directive
<table>
<thead>
<tr>
<th>Name</th>
<th>Owner</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="file in files" highlightable> <!-- Multiple instances of highlightable -->
<td>{{file.name}}</td>
<td>{{file.owner}}</td>
</tr>
</tbody>
</table>
et moi avons une directive qui gère la mise en évidence. Vous cliquez sur le <tr>
et il tentera d'abord de mettre en surbrillance tous les autres <tr>
puis de surligner celui sur lequel vous avez cliqué.
directive('highlightable', function() {
return {
require: 'highlightable',
controller: function($scope, $element) {
this.unhighlight = function(file) {
$element[0].style.backgroundColor = 'transparent';
};
},
link: function(scope, element, attrs, ctrl) {
var color = '#DEE4FC';
element.bind('click', function(e) {
ctrl.unhighlight(scope.file);
element[0].style.backgroundColor = color;
});
}
};
});
Le problème est cependant qu'il ne semble pas accéder à toutes les instances des contrôleurs des directives. Lorsque vous avez besoin d'une autre directive, comment puis-je m'assurer que toutes les instances de cette directive sont requises dans un scénario ng-repeat
et manipuler chaque instance à l'aide des méthodes de contrôleur de chaque directive répétée?
Merci pour le code mis à jour! – Scott