gpt4 book ai didi

javascript - Angular-UI-Grid-Edit 可以与 "controller as"语法一起使用吗?

转载 作者:搜寻专家 更新时间:2023-11-01 04:36:32 25 4
gpt4 key购买 nike

我在编写我的整个 Angular 应用程序时设法避免使用 $scope,而是使用“controller as”语法,以帮助简化向 Angular 2.0 的过渡,因为我相信这是更流行的做法。

但我不知道如何避免将 $scope 与 ui-grid 的 gridApi.edit.on.afterCellEdit 事件一起使用,记录如下:

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 注入(inject) Controller 之后):

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 吗?我试过“this”,但它似乎只需要 $scope。

显然,我不太明白自己在做什么,除了 this 之外,我找不到太多关于 afterCellEdit 的文档。以及我上面盲目遵循的例子,所以我向你寻求帮助。几千行$scope-free代码,倒在最后一关,好可惜啊!

提前致谢

约翰

最佳答案

解决方案是改用null:

gridApi.edit.on.afterCellEdit(null,function(rowEntity, colDef, newValue, oldValue)

从那里您始终可以通过您为其设置的变量访问 Controller ,例如 vm 并访问大部分范围将包含的内容。

关于javascript - Angular-UI-Grid-Edit 可以与 "controller as"语法一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29114156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com