javascript - angularjs 在不同文件中为同一模块定义服务

标签 javascript angularjs service dependency-injection factory

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

服务1.js:

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

service2.js:

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

我的指令.js:

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

最佳答案

这是来自文档:

Beware that using angular.module('myModule', []) will create the module myModule and overwrite any existing module named myModule. Use angular.module('myModule') to retrieve an existing module.

在这里找到: https://docs.angularjs.org/guide/module

关于javascript - angularjs 在不同文件中为同一模块定义服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23378175/

相关文章:

javascript - 如何从 Angular Controller 获取变量到 View

angularjs - For 循环和 Promise

c# - Windows 服务应用程序挂起

linux - 具有非默认安装位置的 Linux 上的 Cassandra DSE 服务

javascript - Ember.js Object observer 是否等同于 ES6 Harmony Object.observe?

javascript - map 框js;隐藏和显示标签

javascript - 在angularjs中聚焦某个输入字段

macos - 如何为 Mac OS X 创建 Windows 服务?

javascript - 做(点击)与订阅

javascript - 从字符串 javascript/jquery 中提取 anchor 标记 href