从不同的模块访问指令

Accessing directive from a different module

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

基本上我希望 directive 在我的 view 中呈现。 但是由于directivecontrollermodules是不同的,所以它给出了错误。

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

controller

angular.module('SlamModuleCtrl')
        .controller('SlambookExt',['$scope','$route','SlambookCollection', function($scope,$route) {
            console.log("slam controller")
        }]);

Directive

angular.module('Genericmodule')
    .directive('appVersion', ['version', function (version) {
       return {
    restrict: 'E',  
    template: '<h1>version1</h1>'
    } 
    }])

View

 <div ng-controller="SlambookExt">
     <app-version>1</app-version>
    </div>

实例化slamModuleCtrl时,需要指定genericModule作为依赖。

或者使用将这两个模块加载为依赖项的父模块,并将该父模块用作您的 ng-app

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

这只是一个看似合理的解决方案,因为您的两个模块在我看来都很合适。所以我猜版本没有显示是因为模块还没有加载

Chanthu 是正确的,您需要指定一个依赖于您的其他模块的父模块,但您还为其他模块传递了一系列依赖项,在这种情况下它们没有任何依赖项。

像这样声明您的模块并将它们添加到父模块中...

var controllerModule = angular.module('controllerModule', []);

var directiveModule = angular.module('directiveModule', []);


controllerModule.controller('mainController', function($scope) {
  $scope.hello = 'Hello';
})


directiveModule.directive('myDirective', function() {
  return {
    template: '{{hello}}'
  };
});

angular.module('app', ['controllerModule', 'directiveModule']);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>

<body ng-app="app" ng-controller="mainController">

  <my-directive></my-directive>

</body>

代码片段显示了另一个模块指令并使用了来自另一个模块控制器的绑定