在角度ui-grid中,如何取消之前注册的事件?

Bri*_*nos 3 angularjs angular-ui-grid

在Angular的ui-grid中,默认行为是对回调进行排队,如何取消/覆盖第一个回调?

$scope.gridApi.selection.on.rowSelectionChanged($scope, function(row){
    alert("Hello #1");
});

$scope.gridApi.selection.on.rowSelectionChanged($scope, function(row){
    alert("Hello #2");
});
Run Code Online (Sandbox Code Playgroud)

bha*_*tol 5

您必须挂起注册事件时返回的驱逐程序,然后执行它们.

如下

var hello1Destroyer = $scope.gridApi.selection.on.rowSelectionChanged($scope, function(row){
    alert("Hello #1");
});

var hello2Destroyer = $scope.gridApi.selection.on.rowSelectionChanged($scope, function(row){
    alert("Hello #2");
});
Run Code Online (Sandbox Code Playgroud)

在某处你打电话hello1Destroyer()和hello2Destroyer().您可以将其放在范围内,或者只是在某个范围内挂起它们.

来源:在第278行内的checkout官方源主分支feature.on [eventName] = function(){