javascript - 错误: inject Angular $http service into requires plugin

标签 javascript angularjs requirejs

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

我可以在我的插件“foo”中看到 Angular 模块,但我不知道如何从 Angular 模块获取 $http 服务。

有人可以给我一些指导吗?提前谢谢。

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(...)
    }
  };

});

关于javascript - 错误: inject Angular $http service into requires plugin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34097271/

相关文章:

javascript - 仅在单击两次后复选框才会取消选中

json - 在嵌套的 JSON 上使用 ng-repeat 进行迭代

javascript - 如何使用 Angular JS 将数据发布到 SQL Server

javascript - 使用 require.js 加载 browserify boundle.js

Javascript:Math.random

javascript - jQuery 类选择困惑

javascript - 我想使用node js返回文件的内容

javascript - 使用 maxbounds 时,Leaflet map 会无限移动

backbone.js - 带有集合的主干渲染

RequireJS文本插件将 '.js'添加到文件名但在同一个域上