如何将控制器注入另一个模块中的指令

时间:2014-10-08 08:23:47

标签: angularjs

我有一个模块' paramApp'使用控制器' ParamCtrl':

var app = angular.app('paramApp', []);

app.controller('ParamCtrl', ['$scope', '$http', function($scope, $http) {
   .
   .
   .
}]);

我有另一个模块' deviceApp'使用指令' DeviceDirective':

var app2 = angular.app('deviceApp', []);

app2.directive('DeviceDirective', function() {

    return {
        .
        .
        .
        controller: // I want to reference ParamCtrl here
        controllerAs: param
    };

});

我在某处读到需要使用angular.injector(或$ injector)注入控制器,但我不确定如何使用它。我尝试使用注射器并没有奏效。

这种方法对吗?我是否需要声明' paramApp'在' deviceApp'像这样的声明,

var app2 = angular.app('deviceApp', ['paramApp']);

请帮助说明如何在指令控制器中使用注射器来引用另一个模块的控制器。

1 个答案:

答案 0 :(得分:2)

我认为你的意思是angular.module('paramApp', [])angular.module('deviceApp', [])?你声明依赖的方法似乎是正确的。我建议不要将所有模块分配给变量,这样就不会污染全局范围。对于您的示例,您可以尝试:

angular.module('paramApp', []);

angular.module('paramApp').controller('ParamCtrl', ['$scope', '$http', function($scope, $http) {
   .
   .
   .
}]);

angular.module('deviceApp', ['paramApp']);
angular.module('deviceApp').directive('DeviceDirective', function () {    
    return { 
    .
    .
    .
    controller: 'ParamCtrl' 
    };
});