我正在使用AngularJS开发一个需要支持IE 8的SPA。
在其中一个页面中,我使用<form>
和<ng-form>
嵌套表单进行表单验证:
<form>
<!-- Some input and checkbox elements -->
<div class="well" ng-repeat="member in data.teammembers">
<ng-form name="innerForm">
<!-- Other repeating form elements -->
</ng-form>
</div>
</form>
但是,正如您现在可能已经知道的那样,在IE 8中没有正确处理自定义元素。我现在得到的只是一个空白页面。如果我删除<ng-form></ng-form>
,一切都恢复正常。
我已经设置<html>
,如下所示:
<!DOCTYPE html>
<html xmlns:ng="http://angularjs.org" ng-app="myApp" id="ng-app" ng-cloak>
我还包括es5-shim
所以我的问题是:
是否有任何<ng-form>
替代方法,以便我可以在IE 8中呈现的嵌套表单中使用表单验证?
答案 0 :(得分:2)
ngForm
指令对通用html标记(EAC
标记)ngForm API reference有form
限制
因此,您可以更改HTML:
<form>
<!-- Some input and checkbox elements -->
<div class="well" ng-repeat="member in data.teammembers">
<div ng-form="innerForm">
<!-- Other repeating form elements -->
</div>
</div>
</form>
最好将name
属性赋予外部表单。这种方式可以访问外部窗体的控制器属性和方法。