无法从父范围找到FormController实例

阿迪亚议员

问题

我正在尝试从其父控制器作用域访问AngularJS FormController实例(通过nameform指令设置属性来创建)。输出为undefined

困惑

但是,$scope当我将控制器对象登录到控制台时,可以在其上看到控制器对象作为属性我还可以使用插值指令从模板本身访问该对象。

例子

标记看起来像:

<body ng-controller="FooCtrl">
    <form name="FooForm" novalidate>
        <input name="bar" required>
    </form>
</body>

JavaScript看起来像:

myAngularApp.controller('FooCtrl', function ($scope) {
    console.log($scope.FooForm); // undefined
    console.dir($scope); // has FooForm peek-a-booing in there
});

演示版

这是完整的插件:http ://plnkr.co/edit/EE7pdBF32B5XRbjZuy8R? p= preview

我究竟做错了什么?我正在尝试关注以下文档:https : //docs.angularjs.org/api/ng/directive/form


iH8

这里的问题是您的控制器是在模板之前初始化的,因此在您尝试使用它时,它仍然是未定义的。试试这个:

myApp.controller('MainCtrl', function ($scope) {
    $scope.$watch('NewForm', function () {
        var outputArea = document.getElementById('output-area');
        outputArea.innerHTML = "The FormController instance is: " + $scope.NewForm;
    });
});

另请注意,使用:

outputArea.innerHTML = "The FormController instance is: " + console.dir(newVal);

没什么意义,您试图将console.dir的返回值连接为一个字符串,该字符串也总是返回undefined;)将其更改为:

outputArea.innerHTML = "The FormController instance is: " + $scope.NewForm;

这是工作正常的柱塞:http ://plnkr.co/edit/yfVP8hD6saWV2tIok2ER?p=preview

评论后编辑:

如果您希望在您的范围内有可用的表单时立即收到通知,并且不想使用$ watch,则可以通过向表单元素添加一个自定义指令来触发事件来做到这一点:

<form name="NewForm" novalidate formready>

定制的“ formready”指令:

.directive('formready', function(){
    return {
        restrict: 'A',
        compile: function () {
            return {
                post: function(scope) {
                    scope.$emit('formready');
                }
            }
        }
    };
});

现在,您可以在控制器中执行以下操作:

$scope.$on('formready', function (event) {
    console.log($scope.NewForm); // Available now
});

这是有关Plunker的工作示例:http ://plnkr.co/edit/KG7LEB6EEkBkdONkL9LA?p=preview

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法从父范围访问节点js要求

来自分类Dev

从父范围获取数据

来自分类Dev

Docs 附加项目 OAuth 范围 - 无法找到范围以请求验证

来自分类Dev

Doobie无法找到或构造T类型的Read实例

来自分类Dev

Opsworks错误:无法使用ARN找到rds实例

来自分类Dev

导入时MS Access无法找到我的Excel范围

来自分类Dev

C ++:从父实例调用子方法

来自分类Dev

如何创建从父字段继承的对象的实例?

来自分类Dev

C ++:从父实例调用子方法

来自分类Dev

Java从父对象实例化子对象

来自分类Dev

指令可以从父范围删除自己吗

来自分类Dev

无法从父目录导入文件

来自分类Dev

无法从父 for 循环记录值

来自分类Dev

如何在AngularJS的父控制器或范围中访问FormController

来自分类Dev

使用 OctoberCMS 在 Backend\Behaviors\FormController 中找到已更新的字段的模型名称

来自分类Dev

测试角度范围的实例

来自分类Dev

Autofac实例范围解析

来自分类Dev

实例,范围和对象

来自分类Dev

范围或实例变量

来自分类Dev

未找到范围

来自分类Dev

在MainActivity.this范围内无法访问MainActivity类型的封闭实例。

来自分类Dev

在MainActivity.this范围内无法访问MainActivity类型的封闭实例。

来自分类Dev

无法找到要实例化的接口控制器类“ InterfaceController”

来自分类Dev

WatchKit错误-无法找到要实例化的接口控制器类

来自分类Dev

如何找到“发送给实例的无法识别的选择器”的错误所在?

来自分类Dev

Android应用程序因RuntimeException崩溃:无法实例化活动,未找到类

来自分类Dev

即使存在必需的模型类,也无法在模型的新实例创建上找到类错误

来自分类Dev

无法实例化[org.thymeleaf.templateresolver.ServletContextTemplateResolver]:未找到默认构造函数

来自分类Dev

java.lang.RuntimeException:无法实例化活动ComponentInfo {…}:java.lang.ClassNotFoundException:未找到类

Related 相关文章

  1. 1

    无法从父范围访问节点js要求

  2. 2

    从父范围获取数据

  3. 3

    Docs 附加项目 OAuth 范围 - 无法找到范围以请求验证

  4. 4

    Doobie无法找到或构造T类型的Read实例

  5. 5

    Opsworks错误:无法使用ARN找到rds实例

  6. 6

    导入时MS Access无法找到我的Excel范围

  7. 7

    C ++:从父实例调用子方法

  8. 8

    如何创建从父字段继承的对象的实例?

  9. 9

    C ++:从父实例调用子方法

  10. 10

    Java从父对象实例化子对象

  11. 11

    指令可以从父范围删除自己吗

  12. 12

    无法从父目录导入文件

  13. 13

    无法从父 for 循环记录值

  14. 14

    如何在AngularJS的父控制器或范围中访问FormController

  15. 15

    使用 OctoberCMS 在 Backend\Behaviors\FormController 中找到已更新的字段的模型名称

  16. 16

    测试角度范围的实例

  17. 17

    Autofac实例范围解析

  18. 18

    实例,范围和对象

  19. 19

    范围或实例变量

  20. 20

    未找到范围

  21. 21

    在MainActivity.this范围内无法访问MainActivity类型的封闭实例。

  22. 22

    在MainActivity.this范围内无法访问MainActivity类型的封闭实例。

  23. 23

    无法找到要实例化的接口控制器类“ InterfaceController”

  24. 24

    WatchKit错误-无法找到要实例化的接口控制器类

  25. 25

    如何找到“发送给实例的无法识别的选择器”的错误所在?

  26. 26

    Android应用程序因RuntimeException崩溃:无法实例化活动,未找到类

  27. 27

    即使存在必需的模型类,也无法在模型的新实例创建上找到类错误

  28. 28

    无法实例化[org.thymeleaf.templateresolver.ServletContextTemplateResolver]:未找到默认构造函数

  29. 29

    java.lang.RuntimeException:无法实例化活动ComponentInfo {…}:java.lang.ClassNotFoundException:未找到类

热门标签

归档