2

我们正在考虑在 AngularJS 中构建一个类似 Excel 的应用程序,我们希望在其中支持单元格编辑的撤消/重做。

关于实施这一点的最佳策略有什么建议吗?

我不只是想撤消刚刚在文本框中输入的文本。我的意思是在几个单元格中输入数据,然后撤消每个条目。

我已经尝试在每次修改之前将当前模型推送到堆栈上。这使得可以通过将模型恢复到以前的状态来撤消。但是,如何将其与 REST CRUD 交互结合起来?

解决 CRUD 的“自然”方式是针对每次修改立即对后端进行 REST 调用(更新数据库)。但是撤消只会修改 Angular 中的模型,而不是数据库。并且没有简单的方法可以通过 REST 发布两个模型之间的增量。

4

1 回答 1

1

我认为这不是 angular-js 特有的功能,而是通过捕获状态实现的功能。

您的操作(例如编辑、添加、移动单元格等)都会改变您的应用程序的状态,这些状态的增量可以推送到可以回滚的结构上。

如果您撤消,比如说 2 个动作,然后开始一个新的动作,那么 2 个最多的状态将被删除,新的状态将被推送。

Photoshop 等应用程序存储与此类似的历史记录(出于类似原因,不允许无限制撤消)。

不过,我再次认为这是不应该绑定到 Angular 框架的功能,但您显然可以将其作为 Angular 服务提供。

于 2013-08-19T08:56:30.063 回答