【问题标题】:AppGyver and AngularJS: dependency injection failing with 2 services from same moduleAppGyver 和 AngularJS:依赖注入失败,来自同一模块的 2 个服务
【发布时间】: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


【解决方案1】:

在你的 index.js 之前初始化“服务”

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"; };

});

【讨论】:

  • 创建小提琴,我可以看看
猜你喜欢
  • 2016-04-25
  • 1970-01-01
  • 2016-08-07
  • 2023-03-05
  • 1970-01-01
  • 2019-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多