错误:将Angular$http服务注入需要插件

Error: inject Angular $http service into requires plugin

本文关键字:注入 插件 服务 http Angular 错误      更新时间:2023-09-26

我想在我的自定义requireJS插件中使用AngularJS$http服务。以下是我的代码。

我可以在我的插件"foo"中看到angular模块,但我不知道如何从angular模块中获得$http服务。

有人能给我指个路吗?提前Thx。

main.js

require.config({
    waitSeconds : 20, //make sure it is enough to load all scripts
    paths: {
        cordova: '../lib/js/ng-cordova',
        angular: '../lib/js/angular/angular',                   // <---- here is angular
        angularAnimate: '../lib/js/angular/angular-animate',
        angularTouch: '../lib/js/angular/angular-touch',
        angularSanitize: '../lib/js/angular/angular-sanitize',
        uiRouter: '../lib/js/angular-ui/angular-ui-router',
        ionic: '../lib/js/ionic.bundle',
        ionicServiceCore: '../lib/js/ionic-core',
        angularIonic: '../lib/js/ionic-angular'
      }
}

foo.js

define(['angular'],function(angular){
  return {
    load: function(name,req,onLoad,config){
      console.log(angular);
      // 
      // I want to use $http here
      // but how to retrieve $http from angular module???
      // 
    } // load
  };
});

您应该能够使用以下代码获得$http服务:

define(['angular'], function(angular) {
  return {
    load: function(name, req, onLoad, config) {
        var $http = angular.injector(['ng']).get('$http');
        // $http.get(...).then(...)
    }
  };
});