AngularJS 1.6.4中的嵌套表单验证

时间:2017-09-28 12:24:31

标签: angularjs frontend

我目前正在使用AngularJS v1.6.4进行子表格验证我在每个子表单中都有一个名为isolateForm的'A'指令。

我的目标是子表单的验证不会传播到父表单,反之亦然。

在以下链接中有代码可以实现目标: http://jsfiddle.net/gikoo/qNrFX/

但是,在该示例中运行的是AngularJS v1.2.1。更新到v1.6.4后,相同的代码会引发以下错误: http://jsfiddle.net/j3u1xed2/

 TypeError: ctrlCopy.$setValidity is not a function
        at Object.$setValidity (isolate-form.directive.js:40)
        at Object.clazz.$setValidity (angular.js:23502)
        at setValidity (angular.js:28716)
        at processParseErrors (angular.js:28655)
        at Object.$$runValidators (angular.js:28642)
        at ngModelWatch (angular.js:28962)
        at Scope.$digest (angular.js:17991)
        at ChildScope.$apply (angular.js:18269)
        at HTMLDivElement.<anonymous> (angular.js:26999)
        at HTMLDivElement.dispatch (jquery.js:5201)

问题是angular.copy(ctrl, ctrlCopy); ctrlCopy不会从ctrl复制$ setValidity函数。

有人知道如何在新版Angularjs中解决这种嵌套表单验证问题吗?或者如何将$函数从一个对象复制到另一个对象。

0 个答案:

没有答案