为什么我不能访问ngJ中包含的表单对象?

时间:2015-02-26 14:36:07

标签: javascript angularjs forms angularjs-ng-include

我的屏幕内置了几堆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

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

由于ng-include创建了新范围,因此将不会在包含的页面中定义$scope.sampleForm

解决方案应该是在包含的HTML页面本身内部获得ng-controller="formController"声明,我认为这也是一个更好的设计,因为我无法看到它不是&的情景#34;控制&#34;形式。

其他未包含的表格显然可以正常运作。

Plunker

相关问题