我正在尝试在数据表中设置一个简单的突出显示机制:
<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>
我有一个处理突出显示的指令。您单击 ,<tr>
它将尝试首先取消突出显示所有其他<tr>
,然后突出显示单击的那个。
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;
});
}
};
});
问题是它似乎并没有访问指令控制器的每个实例。当需要另一个指令时,如何确保我在ng-repeat
场景中需要该指令的每个实例,并通过每个重复指令的控制器方法操作每个实例?