删除更改后,angularjs中的$ dirty仍然为true

时间:2017-09-11 14:46:29

标签: angularjs

我使用$ dirty来检查表单中的更改,但是如果我在输入框中键入内容并删除它,$ dirty仍然是真的。有任何解决方案或者它会像这样工作。

3 个答案:

答案 0 :(得分:1)

这是设计上的。只要用户与其进行交互,任何表单都会变为$dirty,并且您无法撤消交互事件。虽然您可以恢复默认值,但显然不一样。

考虑使用$watch检查新值是否与默认值不同,并$setPristine()清除用户输入。

答案 1 :(得分:0)

$ dirty表示该字段已被再次修改。为了比较您之前模型的模型,您可以在控制器中使用$watch。 如果您的字段为空,则您的解决方案必须设置必需的属性并在您的输入标记中使用以下代码设置ng-validate您的表单无效,然后使用下面的代码进行比较:

formName.inputName.$dirty && formName.inputName.$error.required

答案 2 :(得分:0)

$ Dirty指的是表单字段已修改,您想要使用$ pristine

进行检查