Angularjs 从不同模块访问指令

Angularjs 从不同模块访问指令,angularjs,dependency-injection,angular-directive,angular-controller,Angularjs,Dependency Injection,Angular Directive,Angular Controller,我有两个不同的模块,第一个包含控制器第二个指令 基本上,我希望在我的视图中呈现指令。 但是由于指令的模块和控制器不同,其给出的错误 如果我给出了相同的模块,那么它解决了我的问题,因为我想要一个通用模块为所有控制器服务 控制器 angular.module('SlamModuleCtrl') .controller('SlambookExt',['$scope','$route','SlambookCollection', function($scope,$route) {

我有两个不同的模块,第一个包含控制器第二个指令

基本上,我希望在我的
视图中呈现
指令
。 但是由于
指令
模块
控制器
不同,其给出的错误

如果我给出了相同的
模块
,那么它解决了我的问题,因为我想要一个通用模块为所有控制器服务

控制器

angular.module('SlamModuleCtrl')
        .controller('SlambookExt',['$scope','$route','SlambookCollection', function($scope,$route) {
            console.log("slam controller")
        }]);
angular.module('Genericmodule')
    .directive('appVersion', ['version', function (version) {
       return {
    restrict: 'E',  
    template: '<h1>version1</h1>'
    } 
    }])
指令

angular.module('SlamModuleCtrl')
        .controller('SlambookExt',['$scope','$route','SlambookCollection', function($scope,$route) {
            console.log("slam controller")
        }]);
angular.module('Genericmodule')
    .directive('appVersion', ['version', function (version) {
       return {
    restrict: 'E',  
    template: '<h1>version1</h1>'
    } 
    }])

实例化
slamodulectrl
时,需要将
genericModule
指定为依赖项

或者使用将这两个模块作为依赖项加载的父模块,并将该父模块用作
ng应用程序

angular.module('parentModule',['slamodulectrl','genericModue'])


这是一个合理的解决方案,因为我觉得你们的两个模块都很合适。因此,我猜测该版本不会显示,因为模块尚未加载。

Chanthu是正确的。您需要指定一个父模块,该模块依赖于您的其他模块,但您也会传递其他模块的依赖项数组,在这种情况下,它们没有任何依赖项

声明您的模块并将它们添加到父模块中,如下所示

var controllerModule=angular.module('controllerModule',[]);
var directiveModule=angular.module('directiveModule',[]);
controllerModule.controller('mainController',函数($scope){
$scope.hello='hello';
})
directiveModule.directive('myDirective',function(){
返回{
模板:“{{hello}}”
};
});
角度模块('app',['controllerModule','directiveModule'])


将指令注入控制器是什么意思?为什么不把那个控制器放在你的指令中?@PankajParkar基本上我想访问不同模块的指令,所以必须在控制器的模块中注入那个指令。我不能把控制器放在指令中,因为控制器包含更多的逻辑,把它放在指令中就等于限制了它的范围。你需要这样做,因为你要求把指令放在控制器中是错误的。@PankajParkar你如何将指令与视图集成?遗憾的是,这个问题告诉我如何在不同的模块中访问指令?只需在html中添加指令元素,就可以首先在提供的链接上读取您需要的所有内容。