2

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

最后一句话有点混乱。通过此 plnkr 预览查看它的实际效果(或查看plnkr 编辑器)。

我检查了FormController API。根据文档,没有任何方法可以引发任何形式的表单验证状态刷新,尽管 AngularJS 源代码定义了 FormController 中的$removeControl()和等方法。$setValidity()

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

4

1 回答 1

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;
}
于 2013-03-27T22:20:55.680 回答