Я написал все свое приложение Angular, чтобы избежать использования $scope, используя вместо этого синтаксис «контроллер как», чтобы упростить переход на Angular 2.0 и потому, что я считаю, что это более актуальная практика.
Но я не могу понять, как избежать использования $scope с событием gridApi.edit.on.afterCellEdit ui-grid, которое задокументировано следующим образом:
gridApi.edit.on.afterCellEdit(scope,function(rowEntity, colDef){})
Parameters
rowEntity – {object} – the options.data element that was edited
colDef – {object} – the column that was edited
newValue – {object} – new value
oldValue – {object} – old value
Основываясь на документации, я сделал это, и это работает (после внедрения $scope в контроллер):
ctrl.tableOptions.onRegisterApi = function(gridApi){
ctrl.gridApi = gridApi;
gridApi.edit.on.afterCellEdit( $scope, function(rowEntity,colDef, newValue, oldValue) {
//save stuff here
});
};
но, как вы можете видеть, мне пришлось использовать $scope в обратном вызове события, иначе я получаю сообщение об ошибке, сообщающее мне, что scope.$on не является функцией. Можно ли НЕ использовать $scope? Я пробовал «это», но, похоже, ему нужна только $scope.
Очевидно, я не совсем понимаю, что делаю, и не могу найти много документации по afterCellEdit, кроме это и тому примеру, которому я рабски следовал выше, поэтому обращаюсь к вам за помощью. Тысячи строк кода без $scope, кажется позорным упасть на последнем препятствии!
заранее спасибо
Джон