2017-11-04 205 views
0

我有一個反應形式,有一些默認值,並希望禁用保存按鈕,直到用戶已經改變了一些東西,如果用戶已經改回到初始狀態。Angular:如何知道表單是否回到初始狀態?

我可以訂閱valuechanges,但我想知道一些更改(用戶還原更改後)表單是否回到初始狀態並禁用保存按鈕。

我不能使用Form.dirty,因爲一旦用戶改變了某些內容而不是pristine,如果用戶已恢復其更改,它就會變髒。

JSON.stringify還有其他方法嗎?

+1

那麼,至少在這裏是其他選項:https://stackoverflow.com/questions/201183/how-to-determine-equality-for-two-javascript-objects – Alex

回答

0

我不得不這樣做,並解決「散列」解決方案。 被警告,我沒有徹底檢查對perf的影響。 我用來檢測8個平均子形式的更大形式的變化,沒有滯後,但仍然要謹慎。

讓我解釋一下:

  • 首先,我看着最快,最輕的哈希方法我能找到和加里法院選用murmurhash

  • 然後,當我的數據加載時,我存儲了一個原始形式的散列。

  • 接下來,從表單中的每個值更改事件中,我對它進行散列並將結果與​​存儲的原始散列進行比較。

  • 和voilà!

我希望它有幫助。

相關問題