我有一个具有一些默认值的被动表单,并且想要禁用保存按钮,直到用户更改某些内容并且用户已将其更改回初始状态。
我可以订阅valuechanges
,但我想知道一些更改(用户还原更改后)表单是否恢复到初始状态并禁用保存按钮。
我无法使用Form.dirty
,因为一旦用户更改了某些内容就会变脏,而如果用户还原了他的更改则不再pristine
。
除JSON.stringify
之外的其他方式比较吗?
答案 0 :(得分:0)
我必须这样做,并坚持“哈希”解决方案。 请注意,我没有彻底检查对perf的影响。 我曾经检测过8个较大形式的平均子形式的变化而没有滞后,但仍然要谨慎。
让我解释一下:
首先,我找到了我能找到的最快,最轻的哈希方法,并从加里法院选择了murmurhash。
然后,当我的数据被加载时,我存储了我原始形式的哈希。
接下来,在表单中的每个值更改事件中,我将其哈希并将结果与存储的pristine哈希值进行比较。
瞧瞧!
我希望它有所帮助。