我们正在考虑在AngularJS中构建一个类似Excel的应用程序,其中我们希望对单元格编辑提供撤消/重做支持。
对实现这一点的最佳策略有什么建议吗?
我考虑的不仅仅是撤销刚刚在文本框中输入的文本。我的意思是在几个单元格中输入数据,然后撤消每个条目。
我已经尝试过在每次修改之前将当前模型推送到堆栈上。这使得可以通过将模型恢复到以前的状态来撤消。但是,我如何将其与REST CRUD交互结合起来呢?
解决CRUD的“自然”方法是对每个修改立即对后端进行REST调用(更新数据库)。但是撤销操作只会修改Angular中的模型,而不是数据库。而且,没有简单的方法可以在REST上发布两个模型之间的增量。
发布于 2013-08-19 16:56:30
我认为这不是angular-js所特有的功能,而是通过捕获状态实现的功能。
您的操作(如编辑、添加、移动单元格等)都会改变应用程序的状态,这些状态的增量可以被推送到可以回滚的结构上。
如果你撤销,比如说两个动作,然后开始一个新的动作,那么最多的两个状态将被删除,而新的状态将继续。
类似于此的应用程序,如Photoshop存储历史记录(出于类似的原因,不允许无限制撤消)。
同样,我认为这是不应该绑定到angular框架的功能,但您显然可以将其作为angular服务提供。
https://stackoverflow.com/questions/18308901
复制相似问题