[英]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.