IE8中的AngularJS ng-forms替代方案

时间:2014-07-26 12:05:01

标签: angularjs internet-explorer internet-explorer-8 angularjs-ng-form

我正在使用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中呈现的嵌套表单中使用表单验证?

1 个答案:

答案 0 :(得分:2)

ngForm指令对通用html标记(EAC标记)ngForm API referenceform限制 因此,您可以更改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属性赋予外部表单。这种方式可以访问外部窗体的控制器属性和方法。