angularjs为不同文件中的同一模块定义服务

Jef*_*rey 15 javascript service factory dependency-injection angularjs

我有两个文件,我在我的角度应用程序中定义服务,但是当我尝试在我的指令中使用它们时,我得到一个错误,说明找不到我定义的第二个指令的服务提供者.似乎有一项服务正在覆盖另一项服务.如果我将service2.js中的模块定义更改为myapp.services2,那么它可以正常工作.我想我可以通过这种方式将多个工厂添加到同一模块中.有人能指出我做错了什么吗?

service1.js:

var services = angular.module('myapp.services',[]);
services.factory('Service1', function() {
    // service code
});
Run Code Online (Sandbox Code Playgroud)

service2.js:

var services = angular.module('myapp.services',[]);
services.factory('Service2', function() {
    // service code
});
Run Code Online (Sandbox Code Playgroud)

mydirective.js:

angular.module('myappdirective', []).directive('myapp', ['Service1', 'Service2',
function(service1,service2) {
    // directive code
}]);
Run Code Online (Sandbox Code Playgroud)

aet*_*aet 45

这是来自文档:

请注意,使用angular.module('myModule',[])将创建模块myModule并覆盖任何名为myModule的现有模块.使用angular.module('myModule')检索现有模块.

在此处找到:https: //docs.angularjs.org/guide/module

  • 有趣的是,现有的实施几乎让每个人都感到困惑.`angular.createModule(<module_name>,<dependencies>),angular.retrieveModule(<module_name>)`不会有这么多问题!;)错误地添加`[]`非常难以检测 (17认同)