我會創建一個指示觀看一個名爲「選擇」模型值對象。事情是這樣的:
<tr ng-repeat="element in body">
<td ng-repeat="h in header"
my-cell="selected"
row="{{$parent.$index}}"
col="{{$index}}"
style="width:{{element.width}}px">{{element[h.column]}}
</td>
</tr>
UPDATE
圍繞上述方案的問題是,NG-重複已隔離範圍爲每$索引條目它是如此的$ scope.select變化不是由其他細胞看到。爲了解決這個問題我用$發射和$上的事件,看看:http://plnkr.co/edit/CS21gUe3arstrgubnpTr?p=preview
angular.module("CustomTable").directive("selectMe", function($rootScope) {
return ({
restrict: "A",
link: link,
require: "^customTable"
});
function link(scope, element, attributes, ctCtrl) {
var selected,
mkEvent = function(r,c) {
scope.$emit('selectMeEvent',{
row: r,
col: c
});
}
element.on('click', function(e) {
mkEvent(attributes.row,attributes.col);
});
$rootScope.$on('selectMeEvent',function(e,sObj) {
(sObj.row === attributes.row &&
sObj.col === attributes.col) ?
element.addClass('highlight-me') :
element.removeClass('highlight-me');
});
}
});
@ koolunix..tried了您的解決方案。我beliebe它的手錶部件沒有按預期工作..取在這裏看看這個plnkr。該指令位於文件selectMe.js http://plnkr.co/edit/yf7Ywfj9RjDuaDnOx6DL – runtimeZero
你的鏈接不存在 - 你確定你保存了嗎? – koolunix
Absolutely..here here here is http://plnkr.co/edit/yf7Ywfj9RjDuaDnOx6DL?p=info – runtimeZero