我在表格中显示大约500多行数据,并在每一行上使用ngClick显示有关每一行的更多信息:
<tr ng-repeat="row in displayData.rows track by $index">
<td><span ng-click="orderDetails(row.orderNumber)" class="glyphicon glyphicon-plus"></span></td><td>{{row.orderNumber}}</td><td>{{row.shiptoCompany}}</td><td>{{row.orderTime}}</td><td>{{row.clientID}}</td><td>{{row.shiptoAttention}}</td><td>{{row.shipMethod}}</td><td>{{row.whenLastShipped}}</td>
</tr>
使用vanilla JS,我只需在整个表上放置一个click处理程序,并使用该事件来确定单击了哪一行。有没有办法用Angular做同样的事情,或者Angular已经有效地做了吗?如果我正在做的事情和/或有更好的方法来获得相同的结果,我不想在页面上附加500多个点击处理程序。
答案 0 :(得分:3)
您可以在整个表格中使用单个ng-click
而不是每行http://jsfiddle.net/x2jjdo88/1/
HTML:
<body ng-app="myApp">
<div ng-controller="MyController">
<table ng-click="tableClick($event)">
<tr ng-repeat="row in rows track by $index" style="background:#666">
<td>{{row}}</td>
</tr>
</table>
</div>
</body>
JS:
var app = angular.module('myApp',[]);
app.controller('MyController', function($scope)
{
$scope.rows = [1,2,3,4,5];
$scope.tableClick = function($event)
{
var scope = angular.element($event.target).scope();
console.log(scope.$index);
};
});