如何重置表格中的$ dirty

问题描述 投票:35回答:1

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

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

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

// Please find below attached Fiddle for code reference

Fiddle

angularjs angular-ui
1个回答
63
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.