在ui-grid
中编辑单元格时,基础模型会立即更改(在按Enter键提交更改之前)。按转义撤消更改(通过将模型设置为原始值)。
我在模型上设置了$watch
,每次击键都会触发,包括取消事件。我希望模型只在网格中提交更改时才会更改。
我的解决方法是没有手表,并且在按下操作按钮(单元格中的自定义模板)时使用gridApi.edit.on.afterCellEdit
和触发事件的组合 - 但这不是一个非常优雅的解决方案。
有没有办法强制ui-grid
延迟更新模型,直到提交单元格更改为止?
答案 0 :(得分:1)
目前还没有内置的方法,因为Grid使用了Angular的双向绑定。我个人会尝试将模型绑定到"临时"使用editModelField
或自定义行模板的局部变量。然后让你的afterCellEdit处理程序覆盖"真正的"提交更改时的模型。
您可以在插件中打包此功能。有一个用于UI-Grid插件的Yeoman生成器:https://github.com/c0bra/generator-ui-grid-plugin。这篇文章有一个使用它的方法:http://brianhann.com/write-your-own-ui-grid-plugin/