gpt4 book ai didi

javascript - AppGyver 和 AngularJS : dependency injection failing with 2 services from same module

转载 作者:行者123 更新时间:2023-11-28 07:22:27 24 4
gpt4 key购买 nike

我无法使用 Controller 中同一模块的两个 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(用于依赖注入(inject))

angular.module('home', [
// Declare any module-specific AngularJS dependencies here
'common', 'services'
]);

这显然因这个漂亮的错误而失败

Error: [$injector:unpr] Unknown provider: serviceUserProvider <- serviceUser <- HomeController

(如果我只对 HomeController.js 中的“服务”模块添加一个依赖项,它就可以工作)

有没有简单的方法可以让它工作?最佳实践是什么?

谢谢

最佳答案

在你的index.js中初始化'services'之前

angular.module('services', []);

angular.module('home', [
// Declare any module-specific AngularJS dependencies here
'common', 'services'
]);

并且您可以在没有方括号的情况下完成所有“服务”

angular
.module( 'services')
.service( 'serviceCampaign', function( $http ) {
this.getStuff = function(){ return "from service campaign"; };
});


angular
.module( 'services')
.service( 'serviceUser', function( $http ) {

this.getStuff = function(){ return "from service user"; };

});

关于javascript - AppGyver 和 AngularJS : dependency injection failing with 2 services from same module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30164768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com