我有一种情况,我想将$ setPristine设置为false。在一个表单中,我有一个多选下拉列表,它不会被$ pristine验证。我已经编写了一个单独的事件来验证多选下拉列表中的更改,但$ pristine仍然会将我的屏幕验证为“真实”,这不是我预期的。与此同时,我无法删除$ pristine,因为它验证了表单中的其他字段。
test-me
因为$ pristine是真的'即使在多选下拉菜单更改后也是如此。我们可以在angularjs中将$ setPristine设置为false吗?
答案 0 :(得分:1)
您可以使用Angular FormController的$setDirty()方法,这会使表单的$dirty
属性true
和$pristine
属性为false。
从您显示的代码中,您应该在哪里执行此操作并不十分清楚,但是当用户与菜单进行交互时,您可以执行以下操作:
$scope.entityPropertyForm.$setDirty();
如果您使用controllerAs
语法,则需要在表单名称前加上控制器名称:
<form name="myController.entityPropertyForm">
...
</form>
然后控制器代码将是:
this.entityPropertyForm.$setDirty();