在AngularJS中跨多个文件分割模块

时间:2014-09-11 14:39:39

标签: angularjs

我正在开发一个AngularJS应用程序。我需要创建一个可以包含在其他项目中的模块。该模块具有分布在多个文件中的服务和指令。

Here is my plunker

从plunker,你可以看到我试图像这样加载模块:

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

但是,我收到一条错误消息:

Module 'my.module' is not available! You either misspelled the module name or forgot

但是,我相信我正确引用它。这让我觉得我没有正确捆绑模块的各个部分。我的指令服务工作正常,直到我尝试将它们放入模块中。现在,它不起作用,我不知道如何让它工作。我很感激能得到的任何帮助。

1 个答案:

答案 0 :(得分:1)

我认为你在这里有一些困惑。您正在多次创建模块,并且您将变量名称(" app")与模块名称(" my.module")混合在一起。此外,plunker代码与您发布的代码不匹配。

无论如何,我认为这应该清理它(plunker):

var app = angular.module('my.module', []);
app.controller('AppController', ['$scope', function($scope) {
    $scope.test = '';
}]);

app.service('myService', ['$timeout', '$q', function($timeout, $q) {
//[etc.
]});

app.directive('myDirective', [function() {
  //etc.
    }]);    

修改

好的,我误解了你的代码。

看起来plunkr从下到上加载脚本(?),所以我在myService.js中声明了模块变量,并在myDirective.js中引用它。

New Plunker