如何从另一个控制器访问需求控制器?

撒马尔文

我有一个Angular 1.3模块,看起来像这样(该指令要求使用,存在一个父指令controllerAs):

angular.module('fooModule', [])

.controller('FooController', function ($scope) {
  this.doSomething = function () {
    // Accessing parentDirectiveCtrl via $scope
    $scope.parentDirectiveCtrl();
  };
})

.directive('fooDirective', function () {
  return {
    // Passing in parentDirectiveCtrl into $scope here
    link: function link(scope, element, attrs, parentDirectiveCtrl) {
      scope.parentDirectiveCtrl = parentDirectiveCtrl;
    },
    controller: 'FooController',
    controllerAs: 'controller',
    bindToController: true,
    require: '^parentDirective'
  };
});

在这里,我只是$scope用来通过parentDirectiveCtrl,这似乎有些笨拙。

require没有链接功能,还有另一种方法可以从指令的控制器访问-ed控制器吗?

新开发者

您必须使用该link函数来获取require-ed控制器,但无需使用范围将控制器的引用传递给您自己的。而是直接将其传递给您自己的控制器:

.directive('fooDirective', function () {
  return {

    require: ["fooDirective", "^parentDirective"],

    link: function link(scope, element, attrs, ctrls) {
      var me     = ctrls[0],
          parent = ctrls[1];

      me.parent = parent;
    },
    controller: function(){...},
  };
});

但是要小心,因为控制器在链接之前运行,所以在控制器内部this.parentundefined,直到链接功能运行之后。如果您需要确切知道何时发生,可以随时使用控制器函数将parentDirective控制器传递给:

link: function link(scope, element, attrs, ctrls) {
  //...

  me.registerParent(parent);
},
controller: function(){
  this.registerParent = function(parent){
    //...
  }
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从另一个控制器访问另一个控制器的动作

来自分类Dev

如何访问另一个控制器动作中的一个控制器动作?

来自分类Dev

如何从一个控制器访问变量到另一个控制器

来自分类Dev

从另一个控制器访问变量

来自分类Dev

访问控制器从另一个控制器计算的属性

来自分类Dev

访问另一个控制器上的控制器范围

来自分类Dev

如何通过控制器返回另一个控制器的局部视图?

来自分类Dev

如何从另一个视图控制器实例化导航控制器?

来自分类Dev

如何从控制器动作中调用另一个控制器动作?

来自分类Dev

在Rails中访问另一个控制器中的一个控制器变量

来自分类Dev

从一个控制器访问另一个控制器的数据

来自分类Dev

EXTjs从另一个控制器访问一个控制器中的数据集

来自分类Dev

如何从另一个控制器中的指令访问作用域

来自分类Dev

如何从另一个视图控制器访问按钮?

来自分类Dev

如何从另一个Rails控制器访问方法

来自分类Dev

如何在控制器中访问另一个模型中的角度模型?

来自分类Dev

从另一个控制器触发一个控制器的“动作”

来自分类Dev

如何从另一个控制器调用一个控制器功能?

来自分类Dev

如何从ember.js中的另一个控制器更新一个控制器?

来自分类Dev

如何使用angularjs将一个控制器功能注入另一个控制器?

来自分类Dev

如何从一个控制器到另一个控制器共享阵列

来自分类Dev

如何在另一个控制器的方法中调用一个控制器的方法

来自分类Dev

如何从另一个控制器的作用域访问在一个控制器中定义的变量?

来自分类Dev

如何使用Swift访问另一个视图控制器中的一个视图控制器的IBoutlet?

来自分类Dev

Web API访问控制器方法来自另一个控制器方法

来自分类Dev

从另一个访问一个Web API控制器

来自分类Dev

AngularJS控制器:如何在另一个控制器中调用一个控制器?

来自分类Dev

AngularJS控制器:如何在另一个控制器中调用一个控制器?

来自分类Dev

如何从一个控制器访问同一帖子到另一个?

Related 相关文章

  1. 1

    如何从另一个控制器访问另一个控制器的动作

  2. 2

    如何访问另一个控制器动作中的一个控制器动作?

  3. 3

    如何从一个控制器访问变量到另一个控制器

  4. 4

    从另一个控制器访问变量

  5. 5

    访问控制器从另一个控制器计算的属性

  6. 6

    访问另一个控制器上的控制器范围

  7. 7

    如何通过控制器返回另一个控制器的局部视图?

  8. 8

    如何从另一个视图控制器实例化导航控制器?

  9. 9

    如何从控制器动作中调用另一个控制器动作?

  10. 10

    在Rails中访问另一个控制器中的一个控制器变量

  11. 11

    从一个控制器访问另一个控制器的数据

  12. 12

    EXTjs从另一个控制器访问一个控制器中的数据集

  13. 13

    如何从另一个控制器中的指令访问作用域

  14. 14

    如何从另一个视图控制器访问按钮?

  15. 15

    如何从另一个Rails控制器访问方法

  16. 16

    如何在控制器中访问另一个模型中的角度模型?

  17. 17

    从另一个控制器触发一个控制器的“动作”

  18. 18

    如何从另一个控制器调用一个控制器功能?

  19. 19

    如何从ember.js中的另一个控制器更新一个控制器?

  20. 20

    如何使用angularjs将一个控制器功能注入另一个控制器?

  21. 21

    如何从一个控制器到另一个控制器共享阵列

  22. 22

    如何在另一个控制器的方法中调用一个控制器的方法

  23. 23

    如何从另一个控制器的作用域访问在一个控制器中定义的变量?

  24. 24

    如何使用Swift访问另一个视图控制器中的一个视图控制器的IBoutlet?

  25. 25

    Web API访问控制器方法来自另一个控制器方法

  26. 26

    从另一个访问一个Web API控制器

  27. 27

    AngularJS控制器:如何在另一个控制器中调用一个控制器?

  28. 28

    AngularJS控制器:如何在另一个控制器中调用一个控制器?

  29. 29

    如何从一个控制器访问同一帖子到另一个?

热门标签

归档