如何在表单中重置$ dirty

pix*_*yaj 35 angularjs angular-ui

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

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

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

// Please find below attached Fiddle for code reference
Run Code Online (Sandbox Code Playgroud)

小提琴.

MBi*_*ski 62

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

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