2013-08-19 76 views
1

我們正在考慮在AngularJS中構建一個類似Excel的應用程序,我們希望撤銷/重做支持單元格編輯。CRUD AngularJS應用程序的撤消/重做實施

關於實施這個最佳策略的任何建議?

我不只是想撤消剛輸入到文本框中的文本。我的意思是在幾個單元格中輸入數據,然後撤消每個條目。

我已經嘗試過在每次修改之前將當前模型推入堆棧。這可以通過將模型恢復到之前的狀態進行撤消。但是,如何將這與REST CRUD交互結合起來呢?

解析CRUD的「自然」方法是對每個修改執行立即REST調用到後端(更新數據庫)。但是撤消只會在Angular中修改模型,而不是數據庫。並且沒有簡單的方式通過REST發佈兩個模型之間的增量。

+0

如果單元格只是輸入字段,則CTRL + Z和CTRL + SHIFT + Z將對這些進行撤銷重做。 – jcubic

+0

@jcubic我澄清了我的問題,對此。 –

+0

我已經刪除了對問題的任何引用,以便它應該完全在主題上。 –

回答

1

我會認爲這是不是特別針對angular-js的功能,而是通過捕獲狀態實現的功能。你的行爲(如編輯,添加,移動單元格等)都會改變你的應用程序的狀態,這些狀態的增量可能會被推到一個可以回滾的結構上。

如果你撤消了,說2個動作,然後開始一個新的動作,那麼2個最多的狀態將被刪除,並推動新的狀態。

諸如Photoshop之類的應用程序存儲與此類似的歷史記錄(出於類似的原因,不允許無限制地撤消)。

雖然如此,我會爭辯說,這是不應該綁定到角框架的功能,但您顯然可以將它作爲角度服務提供。

+0

好的,但我認爲這可能是可以與數據綁定集成的東西。 我是新來的角,所以很遺憾不是很明顯它將如何作爲角度服務。 –