Angular ng-grid 点击事件未触发
Angular ng-grid click event not triggered
在下面的plunkr中,有一个带有一些记录的ng-grid。 ng-grid 中的每一行都有一个删除按钮,单击该按钮时不会调用侦听器。
[http://plnkr.co/edit/ffEfZP8ygV1pMD8PGQgV?p=preview][1]
请说明为什么点击时不调用此侦听器
您需要在 AddToGrid
方法的末尾添加 $scope.apply();
,如下所示
$scope.addToGrid = function() {
$scope.myData.push({
"firstName": $scope.firstName,
"lastName": $scope.lastName,
"company": $scope.company,
"employed": $scope.employed
});
$scope.firstName = '';
$scope.lastName = '';
$scope.company = '';
$scope.employed = false;
$scope.apply();
}
如果您在模板中使用变量 $index,就会出现问题。
像这样尝试:
ng-click="grid.appScope.removeRow(row)"
然后,在您的 removeRow 函数中,您现在接收到行对象。只需在您的数据对象中找到它并删除它。
var index = $scope.myData.indexOf(row.entity);
$scope.gridOptions.data.splice(index, 1);
在下面的plunkr中,有一个带有一些记录的ng-grid。 ng-grid 中的每一行都有一个删除按钮,单击该按钮时不会调用侦听器。
[http://plnkr.co/edit/ffEfZP8ygV1pMD8PGQgV?p=preview][1]
请说明为什么点击时不调用此侦听器
您需要在 AddToGrid
方法的末尾添加 $scope.apply();
,如下所示
$scope.addToGrid = function() {
$scope.myData.push({
"firstName": $scope.firstName,
"lastName": $scope.lastName,
"company": $scope.company,
"employed": $scope.employed
});
$scope.firstName = '';
$scope.lastName = '';
$scope.company = '';
$scope.employed = false;
$scope.apply();
}
如果您在模板中使用变量 $index,就会出现问题。 像这样尝试:
ng-click="grid.appScope.removeRow(row)"
然后,在您的 removeRow 函数中,您现在接收到行对象。只需在您的数据对象中找到它并删除它。
var index = $scope.myData.indexOf(row.entity);
$scope.gridOptions.data.splice(index, 1);