2

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

基本上我希望directive在我的view. 但至于modulesdirective不同controller,其给出错误。

如果我给出相同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>
4

2 回答 2

5

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

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

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

这只是一个合理的解决方案,因为您的两个模块对我来说都是正确的。所以我猜测版本没有显示,因为模块还没有加载

于 2016-01-04T21:51:46.317 回答
2

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>

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

于 2016-01-04T22:38:51.320 回答