angularjs - 如何在表单中重置 $dirty

标签 angularjs angular-ui

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

问题是一旦您更改表单字段, 的值$脏将设置为 真实
但是现在,当您撤消更改时,它不会重置 $脏值为 .

我们可以重置 $脏值为 手动,但之后当您再次更改表单字段值时 $脏不会将其值更改为 真实 .根据我的观察,它设置为 $脏通过放置 ng-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/

相关文章:

javascript - AngularJS 提交时禁用按钮 - 错误时重新启用

javascript - 父作用域中函数的参数

javascript - 在 bootstrap timepicker-angular js 中验证

angularjs - Angular UI-Grid(新的)——基于行的动态/自动调整高度

angularjs-directive - 创建包含其他指令的 Angular.js 指令

javascript - 无法在 Angular 完整日历上显示自定义事件

javascript - Angular - Controller 执行超过 1 次

html - 禁用按钮在 Edge 浏览器上是可点击的

angularjs - Angular UI typeahead 不显示下拉菜单

javascript - 有没有办法在 angular-ui-router 中获取子状态列表?