在我的申请表中使用$ dirty时遇到一个问题。
问题是一旦你更改表单域,$ dirty的值将被设置为true
但现在当您撤消更改时,它不会将$ dirty值重置为false。
我们可以手动将$ dirty值重置为false,但之后当您再次更改表单域值时,$ dirty将不会将其值更改为true。根据我的观察,通过放置ng-dirty类来设置你表单中每个字段的脏值。即使你删除该类也不影响$ dirty行为。
// Please find below attached Fiddle for code reference
你要找的是$ setPristine()。你可以在这里找到文档:
http://docs.angularjs.org/api/ng/type/form.FormController
当表单首先在页面上加载时,它处于称为原始状态。你会发现这个表单,$ pristine是true和form。$ dirty是false。对任何具有角度绑定的元素进行任何更改后,这些值都会相反。虽然您可以将表单输入值重置为原始状态,但这样做并不会改变角度状态。调用表单$ setPristine();将这些表单值设置为原始状态。