繁体   English   中英

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

[英]Can Angular-UI-Grid-Edit be used with “controller as” syntax?

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

但我无法弄清楚如何避免在ui-grid的gridApi.edit.on.afterCellEdit事件中使用$ scope,其记录如下:

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,否则我会收到一个告诉我范围的错误。$ on不是一个函数。 是否可以不使用$ scope? 我试过“这个”,但似乎只想要美元范围。

显然,我真的不明白我在做什么,而且除了这个以及我在上面盲目遵循的例子之外,我找不到关于afterCellEdit的更多文档,所以我转向你寻求帮助。 成千上万的无范围代码行,在最后一道障碍中摔倒似乎是一种耻辱!

提前致谢

约翰

解决方案是使用null代替:

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

从那里你总是可以通过你为它设置的变量访问控制器,例如vm并访问大多数范围包含的内容。

我遇到了同样的问题(...避免在ui-grid的gridApi中使用$ scope ...)并使用ui-grid分页在plunker上做了一个基本的应用程序。 我希望这有帮助。 http://plnkr.co/edit/sQos8J?p=preview

ng-click="main.gridApi2.pagination.previousPage()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM