在我的申请表中使用 $ dirty 时,我遇到一个问题。

问题是,一旦您更改了表单字段, $ dirty 的值将被设置为 true
但是现在撤消更改时,并没有将 $ dirty 值重置为 false

我们可以手动将 $ dirty 值重置为 false ,但是此后,当您再次更改表单字段值 $ dirty 时,其值将不会更改为 true 。根据我的观察,它通过放置ng-dirty类来设置表单中每个字段的 $ dirty 值。即使删除该类,它也不会影响 $ dirty 行为。

// Please find below attached Fiddle for code reference

Fiddle

最佳答案

您正在寻找的是$ setPristine()。您可以在以下文档中找到它:http://docs.angularjs.org/api/ng/type/form.FormController

表单第一次加载到页面上时,处于原始状态。您会发现该form。$ pristine为true,而form。$ dirty为false。一旦对具有Angular绑定(bind)的任何元素进行了任何更改,这些值将被反转。虽然您可以将表单输入值重置为其原始状态,但这样做不会更改任何Angular表单状态。调用form。$ setPristine();将这些表单值设置回其原始状态。

关于angularjs - 如何在表单中重置$ dirty,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22990923/

10-13 01:31