AngularJS:包含在同一控制器中

n00dl3

我有一条指令可以包装另一个这样的指令:

<div direction from="origin" to="destination">
    <div direction-map line-color="#e84c3d"></div>
</div>

direction-map指令已被包含在内,请参见我的代码(Fiddle可在此处):

var directionController = function() {
    //do stuffs
};
var directionMapController = function() {
    //do other stuffs
};
var Direction = angular.module("direction", [])
    .controller("directionController", directionController)
    .controller("directionMapController", directionMapController)
    .directive("direction", function() {
        var directive = {
            restrict: "AEC",
            controller: "directionController",
            scope: {},
            transclude: true,
            link: {
                pre: function($scope, $element, attrs, controller, transclude) {
                    console.log("direction's controller is directionController : ");
                    console.log(controller.constructor === directionController);//true, that's ok
                    transclude($scope, function(clone) {
                        $element.append(clone);
                    });
                }
            }
        };
        return directive;
    })
    .directive("directionMap", function() {
        var directive = {
            require: "^direction",
            controller: "directionMapController",
            restrict: "AEC",
            scope: true,
            link: {
                pre: function($scope, $element, $attrs, controller) {
                    console.log("directionMap's controller is directionMapController :");
                    console.log(controller.constructor===directionMapController);//false that's not OK!!!!
                }
            }
        };
        return directive;
    });

所以我的问题是:

为什么我的子指令direction-map将其父控制器的参数作为参数(我认为是因为它已被包含),是否有可能避免这种情况,还是我应该重新考虑一下我的代码?

松鼠类

发生这种情况的原因是,require: "^direction"如果您删除此行,则该指令将获取自身的控制器,而不是父控制器。

希望对您有所帮助:)

更新的小提琴

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails 控制器包含在包含中

来自分类Dev

AngularJS:将控制器从同一模块插入另一个控制器中

来自分类Dev

从同一控制器Angularjs中的另一个方法访问$ scope变量

来自分类Dev

AngularJS $ scope.foo设置了服务,但后来在同一控制器中未定义

来自分类Dev

无法访问同一控制器中的范围:AngularJS

来自分类Dev

将Blade模板包含在其自己的控制器中

来自分类Dev

包含在md对话控制器中的md对话功能异常触发按钮

来自分类Dev

在同一模块中定义多个控制器

来自分类Dev

在一个页面中包含更多控制器

来自分类Dev

在“同一控制器中的模态”方法的情况下,如何在AngularJS模态中使用controllerAs语法

来自分类Dev

在AngularJS中的另一个控制器中使用控制器

来自分类Dev

AngularJS UI路由器多次加载同一控制器

来自分类Dev

如何使用 JavaScript 插入新的表单行并将其包含在传递给控制器的内容中?

来自分类Dev

将控制器变成AngularJS中的控制器

来自分类Dev

AngularJS UI Bootstrap模式共享信息到同一控制器

来自分类Dev

AngularJS:如何从同一指令控制器访问指令范围?

来自分类Dev

是否可以在同一元素上应用多个AngularJS控制器

来自分类Dev

来自同一控制器的AngularJs ng-if函数调用不起作用

来自分类Dev

来自同一控制器的AngularJs ng-if函数调用不起作用

来自分类Dev

AngularJS:如何从同一指令控制器访问指令范围?

来自分类Dev

AngularJS,使用不同模板但使用同一控制器的多条路线怎么样?

来自分类Dev

“ [GCController控制器]”不包含在启动应用程序之前已连接的任何控制器

来自分类Dev

AngularJS:如何隐藏一个控制器div,然后在同一位置显示另一个控制器div?

来自分类Dev

从另一个控制器中调用一个控制器内部的函数-AngularJS

来自分类Dev

在angularjs中的另一个控制器下调用一个控制器

来自分类Dev

从angularjs中的另一个模块的控制器调用一个模块的控制器功能

来自分类Dev

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

来自分类Dev

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

来自分类Dev

AngularJS:如何从另一个控制器中动态初始化模板中的控制器

Related 相关文章

  1. 1

    Rails 控制器包含在包含中

  2. 2

    AngularJS:将控制器从同一模块插入另一个控制器中

  3. 3

    从同一控制器Angularjs中的另一个方法访问$ scope变量

  4. 4

    AngularJS $ scope.foo设置了服务,但后来在同一控制器中未定义

  5. 5

    无法访问同一控制器中的范围:AngularJS

  6. 6

    将Blade模板包含在其自己的控制器中

  7. 7

    包含在md对话控制器中的md对话功能异常触发按钮

  8. 8

    在同一模块中定义多个控制器

  9. 9

    在一个页面中包含更多控制器

  10. 10

    在“同一控制器中的模态”方法的情况下,如何在AngularJS模态中使用controllerAs语法

  11. 11

    在AngularJS中的另一个控制器中使用控制器

  12. 12

    AngularJS UI路由器多次加载同一控制器

  13. 13

    如何使用 JavaScript 插入新的表单行并将其包含在传递给控制器的内容中?

  14. 14

    将控制器变成AngularJS中的控制器

  15. 15

    AngularJS UI Bootstrap模式共享信息到同一控制器

  16. 16

    AngularJS:如何从同一指令控制器访问指令范围?

  17. 17

    是否可以在同一元素上应用多个AngularJS控制器

  18. 18

    来自同一控制器的AngularJs ng-if函数调用不起作用

  19. 19

    来自同一控制器的AngularJs ng-if函数调用不起作用

  20. 20

    AngularJS:如何从同一指令控制器访问指令范围?

  21. 21

    AngularJS,使用不同模板但使用同一控制器的多条路线怎么样?

  22. 22

    “ [GCController控制器]”不包含在启动应用程序之前已连接的任何控制器

  23. 23

    AngularJS:如何隐藏一个控制器div,然后在同一位置显示另一个控制器div?

  24. 24

    从另一个控制器中调用一个控制器内部的函数-AngularJS

  25. 25

    在angularjs中的另一个控制器下调用一个控制器

  26. 26

    从angularjs中的另一个模块的控制器调用一个模块的控制器功能

  27. 27

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

  28. 28

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

  29. 29

    AngularJS:如何从另一个控制器中动态初始化模板中的控制器

热门标签

归档