如何在表单中重置$ dirty

时间:2014-04-10 14:25:47

标签: angularjs angular-ui

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

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

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

// Please find below attached Fiddle for code reference

Fiddle

1 个答案:

答案 0 :(得分:57)

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

当表单首次加载到页面上时,它处于一个名为pristine的状态。你会找到那种形式。$ pristine是真的和形式。$ dirty是假的。一旦对具有Angular绑定的任何元素进行了任何更改,那些值就会反转。虽然您可以将表单输入值重置为其原始状态,但这样做不会更改Angular表单状态。拨打电话。$ setPristine();将这些表单值设置回原始状态。