我目前正在使用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中解决这种嵌套表单验证问题吗?或者如何将$函数从一个对象复制到另一个对象。