在Angular ui-grid中编辑单元格时延迟模型更改

时间:2015-06-23 19:12:50

标签: angularjs angular-ui-grid

ui-grid中编辑单元格时,基础模型会立即更改(在按Enter键提交更改之前)。按转义撤消更改(通过将模型设置为原始值)。

我在模型上设置了$watch,每次击键都会触发,包括取消事件。我希望模型只在网格中提交更改时才会更改。

我的解决方法是没有手表,并且在按下操作按钮(单元格中的自定义模板)时使用gridApi.edit.on.afterCellEdit和触发事件的组合 - 但这不是一个非常优雅的解决方案。

有没有办法强制ui-grid延迟更新模型,直到提交单元格更改为止?

1 个答案:

答案 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/