AngularJS验证异步加载的表单

时间:2013-08-23 17:41:32

标签: javascript forms validation angularjs

我正在构建一个AngularJS应用程序,其中包含包含表单的模态窗口,并以异步方式加载到DOM中(单击相应的按钮时)。表单工作正常,但我无法正确检查它们是否有效。这是一个例子:

HTML

<div ng-app="myapp" ng-controller="MyCtrl">
    <form novalidate name="myform" ng-submit="submitForm(myform)">
        <input type="text" required ng-model="myname" />
    </form>
</div>

的JavaScript

var app = angular.module('myapp', []);
app.controller("MyCtrl", function($scope) {
    $scope.submitForm(form) {
        if(form.$valid) {
            // Do http stuff here
        }
    };
});

如果异步加载此表单,则表单变量的值为NaN和form。$ valid未定义。但是,如果我将其加载到页面的其余部分,它可以正常工作。有谁知道如何强制AngularJS填充表单的范围变量?谢谢!

1 个答案:

答案 0 :(得分:1)

使用ng-include包含表单时,会创建childScope。父级和childScope无法访问每个范围。因此。$ valid无效。

前几天我遇到了一个类似的问题,并得到了一个适合我的工作解决方案:

AngularJS $setValidity on childScope form