我正在构建一个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填充表单的范围变量?谢谢!
答案 0 :(得分:1)
使用ng-include包含表单时,会创建childScope。父级和childScope无法访问每个范围。因此。$ valid无效。
前几天我遇到了一个类似的问题,并得到了一个适合我的工作解决方案: