我的屏幕内置了几堆ng-includes。最后一个,特别是,我根据用户配置构建了屏幕。
有时,我必须在其中一个包含的模板中显示一个表单。当我的用户点击“保存”按钮时,我必须验证表单中的所有字段是否有效。
与此同时,当尝试访问表单对象时,为了检查$ valid,我的表单是未定义的。
经过一天的反对,我发现ng-include流程不接受我要创建的表单对象。
我创建了这个plunker,看看它是否真的发生在一个简单的项目中,制作一个工作表单而不是一个工作: http://plnkr.co/edit/4oMZYLgaYHJPoSZdSctI?p=preview
基本上,使用所需的角度属性创建了一个表单:
<form name="sampleForm">
<input type="text" name="aws" required ng-model="myValue">
<br/>myValue: "{{ myValue }}"
<br/>
<input type="text" name="aws" required ng-model="myValue">
<br/>myValue: "{{ myValue }}"
</form>
尝试访问这样的表单对象:
$scope.sampleForm.aws.$valid
结果是:
$scope.sampleForm === undefined
有人知道如何解决这个问题吗?
答案 0 :(得分:4)
由于ng-include
创建了新范围,因此将不会在包含的页面中定义$scope.sampleForm
。
解决方案应该是在包含的HTML页面本身内部获得ng-controller="formController"
声明,我认为这也是一个更好的设计,因为我无法看到它不是&的情景#34;控制&#34;形式。
其他未包含的表格显然可以正常运作。