【发布时间】:2015-07-21 18:52:05
【问题描述】:
我无法在我的控制器中使用来自同一模块的两个 angularJS 服务。
我在我的 AppGyver 应用程序中使用 AngularJS(面向 MPA)。
我有以下架构:
- common/services/
- ServiceCampaign.js
- ServiceUser.js
- home/scripts/
- HomeController.js
- home/
- index.js
ServiceCampaign.js
angular
.module( 'services', [] )
.service( 'serviceCampaign', function( $http ) {
this.getStuff = function(){ return "from service campaign"; };
});
ServiceUser.js
angular
.module( 'services', [] )
.service( 'serviceUser', function( $http ) {
this.getStuff = function(){ return "from service user"; };
});
HomeController.js
angular
.module( 'home' )
.controller( 'HomeController', function($scope, supersonic, serviceUser, serviceCampaign) {
var campaignStuff = serviceCampaign.getStuff();
var userStuff = serviceUser.getStuff();
});
index.js(用于依赖注入)
angular.module('home', [
// Declare any module-specific AngularJS dependencies here
'common', 'services'
]);
这显然是由于这个不错的错误而失败
Error: [$injector:unpr] Unknown provider: serviceUserProvider <- serviceUser <- HomeController
(如果我只在 HomeController.js 中的“服务”模块中添加一个依赖项,它就可以工作)
有没有一种简单的方法可以让它工作?最佳做法是什么?
谢谢
【问题讨论】:
-
如果您将家庭控制器更改为如下所示会发生什么:
.module( 'home' , []) -
您是指编辑与我的家庭控制器相关的 index.js 文件还是 HomeController.js 文件本身?
-
HomeController.js 文件本身。
标签: javascript angularjs dependency-injection angularjs-service appgyver