父控制器的访问指令作用域

时间:2018-07-17 11:24:25

标签: angularjs

我正在使用angularjs ui浏览https://github.com/benmarch/angular-ui-tour 我已经成功安装了指令, 现在,我想在加载页面时在控制器中初始化指令。

在我的路线上,我有以下代码

when('/start', {
    templateUrl: 'start.html',
    controller: 'startController'      
})

在模板start.html上,我有以下代码

<div ui-tour class="myClass">

所以我想从startController访问ui-tour范围的游览变量,该怎么办?

2 个答案:

答案 0 :(得分:0)

这取决于指令的定义方式。是否创建新的作用域?它的作用域是原型继承还是孤立的。最简单的解决方案是使您的指令不创建新的作用域,而是使用父对象的作用域。如果作用域相同,则只需从父控制器中的指令中调用函数即可,就像在该控制器中的功能一样。

有关为何不是一个简单答案以及定义范围指令的更多信息,请参见以下链接:

directives and scopes

答案 1 :(得分:0)

看一下文档,看起来是有可能的。通过uiTourService documentation

yourModule.controller('startController',
['$scope', 'uiTourService', function($scope, uiTourService) {
    var myTour = uiTourService.getTour();
}]);