AngularJS:提交表单后如何$ setPristine

时间:2015-08-26 01:01:33

标签: javascript angularjs forms

当我提交表单时,我想要一些输入元素为$ setPristine。因为在我提交表单后,我会将模型绑定到输入元素,以防用户可以再次输入新内容。但是一旦我清空了模型,输入元素也会清空,因此验证信息会显示required

所以我在提交表单后想要$ setPristine。我找到了两种方法:

一:

我在ng-submit中使用表达式,如:

<form ng-controller="FormController" name="userForm" ng-submit="userForm.$valid?submitForm(),userForm.keywordsInput.$setPristine(): ''">

但是这种语法看起来很糟糕,因为控制台中的角度报告错误信息。

两个

我可以将表单传递给submit函数,然后将$ setPristine传递给submit函数:

$scope.submit = function (form) {
    form.keywordsInput.$setPristine()
}

但我也不这是一个好习惯,因为在角度官方参考网站上,它建议:

  

不要使用控制器:操纵DOM。

这是一种操纵DOM吗?

那么有更好的方法来完成这项工作吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题记录undefined $ setPristine()。但是,在视图中它有效。

<button class="button button-stable button-block " type="submit" ng-click="register(registerData);formName.$setPristine();"> Submit </button>