如何让子控制器访问父控制器中的功能

厄姆·珀西(Oam Psy)

我有一个简单的父子控制器设置,我试图让我的子控制器调用父控制器中的函数:

HTML:

<div ng-controller="Parent>

    <p ng-hide="ribbonHide">{{ribbonMessage}}</p>

    <div ng-controller="Child">


    </div>

</div>

Parent.js:

app.controller('Parent', function($scope, $timeout) {
    $scope.searchRibbon = function() {
        return {
            default : function() {
                $scope.ribbonMessage = 'Welcome';
                $scope.ribbonHide = false;
            },
            clearMessage: function() {
                $scope.ribbonMessage = '';
            },
            hide: function() {
                $scope.ribbonHide = true;
            },
            autoRemove: function() {
                $timeout(function() {
                    $scope.searchRibbon.hide();
                    $timeout(function() {
                        $scope.searchRibbon.clearMessage();
                    }, 500);
                }, 5000);
            }
        }
    }
});

Child.js

app.controller('Child', function($scope, $timeout) {
    $scope.$parent.searchRibbon.autoRemove();
});

有了上述,我得到了错误:

TypeError: $scope.$parent.searchRibbon.autoRemove is not a function

谢谢

罗宾逊

searchRibbon似乎是一个函数本身,它将返回您期望的对象。因此,$scope.$parent.searchRibbon().autoRemove()应该工作。

但这似乎很奇怪。您确定不想searchRibbon成为标准对象吗?

$scope.searchRibbon = {
    default : function() {
        $scope.ribbonMessage = 'Welcome';
        $scope.ribbonHide = false;
    }, // ... the other ribbon properties go here
}

如果需要函数提供的作用域,则可能需要遵循以下方法:

$scope.searchRibbon = getSearchRibbon();

function getSearchRibbon() { // This should probably be in a Service
    return {
        default : function() {
            $scope.ribbonMessage = 'Welcome';
            $scope.ribbonHide = false;
        }, // ... the other ribbon properties go here
    }
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在子控制器中访问父控制器

来自分类Dev

EmberJS:在父级中访问子控制器功能

来自分类Dev

如何在Angular的父控制器中访问子控制器作用域?

来自分类Dev

如何在指令中访问子控制器和父控制器?

来自分类Dev

如何在Angular JS的子控制器中访问父控制器数据

来自分类Dev

如何在指令中访问子控制器和父控制器?

来自分类Dev

EmberJS-如何从子控制器中访问父控制器?

来自分类Dev

如何在子控制器中更新父控制器变量

来自分类Dev

如何在父控制器中访问指令的对象?

来自分类Dev

如何在父控制器中访问指令的对象?

来自分类Dev

如何从Yii中的模型访问控制器功能?

来自分类Dev

如何在指令链接中访问控制器功能?

来自分类Dev

如何从指令模板访问控制器中的功能

来自分类Dev

如何访问从父指令传递但在控制器中定义的子指令中的功能?

来自分类Dev

如何从uiviewcontainer的控制器获取父控制器

来自分类Dev

使用Typescript时,如何从子控制器访问父控制器中的作用域函数?

来自分类Dev

如何从子控制器访问父成员控制器

来自分类Dev

使用“作为控制器”语法时,如何在子控制器中引用父级的作用域?

来自分类Dev

包含和访问父控制器

来自分类Dev

访问父控制器的实例方法

来自分类Dev

访问父视图控制器

来自分类Dev

在子控制器中覆盖父控制器的实例变量

来自分类Dev

如何访问Angularjs控制器中其他文件(不是控制器)中定义的功能?

来自分类Dev

如何访问Angularjs控制器中其他文件(不是控制器)中定义的功能?

来自分类Dev

从angular中的指令调用父控制器的功能

来自分类Dev

如何通过递归要求访问父指令的控制器?

来自分类Dev

渲染多态模型时如何访问父控制器?

来自分类Dev

如何通过递归要求访问父指令的控制器?

来自分类Dev

如何在循环内访问父控制器数据

Related 相关文章

  1. 1

    在子控制器中访问父控制器

  2. 2

    EmberJS:在父级中访问子控制器功能

  3. 3

    如何在Angular的父控制器中访问子控制器作用域?

  4. 4

    如何在指令中访问子控制器和父控制器?

  5. 5

    如何在Angular JS的子控制器中访问父控制器数据

  6. 6

    如何在指令中访问子控制器和父控制器?

  7. 7

    EmberJS-如何从子控制器中访问父控制器?

  8. 8

    如何在子控制器中更新父控制器变量

  9. 9

    如何在父控制器中访问指令的对象?

  10. 10

    如何在父控制器中访问指令的对象?

  11. 11

    如何从Yii中的模型访问控制器功能?

  12. 12

    如何在指令链接中访问控制器功能?

  13. 13

    如何从指令模板访问控制器中的功能

  14. 14

    如何访问从父指令传递但在控制器中定义的子指令中的功能?

  15. 15

    如何从uiviewcontainer的控制器获取父控制器

  16. 16

    使用Typescript时,如何从子控制器访问父控制器中的作用域函数?

  17. 17

    如何从子控制器访问父成员控制器

  18. 18

    使用“作为控制器”语法时,如何在子控制器中引用父级的作用域?

  19. 19

    包含和访问父控制器

  20. 20

    访问父控制器的实例方法

  21. 21

    访问父视图控制器

  22. 22

    在子控制器中覆盖父控制器的实例变量

  23. 23

    如何访问Angularjs控制器中其他文件(不是控制器)中定义的功能?

  24. 24

    如何访问Angularjs控制器中其他文件(不是控制器)中定义的功能?

  25. 25

    从angular中的指令调用父控制器的功能

  26. 26

    如何通过递归要求访问父指令的控制器?

  27. 27

    渲染多态模型时如何访问父控制器?

  28. 28

    如何通过递归要求访问父指令的控制器?

  29. 29

    如何在循环内访问父控制器数据

热门标签

归档