AngularJs将$ setPristine设置为false

时间:2016-03-16 17:03:23

标签: angularjs

我有一种情况,我想将$ setPristine设置为false。在一个表单中,我有一个多选下拉列表,它不会被$ pristine验证。我已经编写了一个单独的事件来验证多选下拉列表中的更改,但$ pristine仍然会将我的屏幕验证为“真实”,这不是我预期的。与此同时,我无法删除$ pristine,因为它验证了表单中的其他字段。

test-me

因为$ pristine是真的'即使在多选下拉菜单更改后也是如此。我们可以在angularjs中将$ setPristine设置为false吗?

1 个答案:

答案 0 :(得分:1)

您可以使用Angular FormController的$setDirty()方法,这会使表单的$dirty属性true$pristine属性为false。

从您显示的代码中,您应该在哪里执行此操作并不十分清楚,但是当用户与菜单进行交互时,您可以执行以下操作:

$scope.entityPropertyForm.$setDirty();

如果您使用controllerAs语法,则需要在表单名称前加上控制器名称:

<form name="myController.entityPropertyForm">
...
</form>

然后控制器代码将是:

this.entityPropertyForm.$setDirty();