使用AngularJS和动态字段进行表单验证

时间:2013-03-27 15:06:27

标签: angularjs validation

我遇到了关于AngularJS表单验证的奇怪问题。如果动态添加的控件(例如文本框)需要验证并从表单中删除,则如果删除的控件无效,则表单将保持无效。

最后一句话有点令人困惑。通过this plnkr preview(或参见the plnkr editor)了解相关信息。

我检查了FormController API。基于文档,没有方法可以激发任何类型的表单验证状态刷新,尽管AngularJS源代码在FormController中定义了$removeControl()$setValidity()等方法。

是否存在规避验证问题的标准方法?

1 个答案:

答案 0 :(得分:0)

之前我遇到过此问题,请参阅此答案以获取更多详细信息:https://stackoverflow.com/a/15192773/317180

显然这是一个活跃的错误。

解决方法是提供一个隐藏的计数器,在更改元素时递增,这会强制表单重新生效:

在模板中:

<input type="hidden" ng-bind="abc" />

在控制器中:

$scope.remove = function(position) {
    $scope.items.splice(position, 1);
    $scope.abc += 1;
}
相关问题