为了账号安全,请及时绑定邮箱和手机立即绑定

在应用配置Angular.js中的自定义提供程序中使用$ http

在应用配置Angular.js中的自定义提供程序中使用$ http

精慕HU 2019-10-25 09:46:18
主要问题-可能吗?我没有运气尝试..主app.js...var app = angular.module('myApp', ['services']);app.config(['customProvider', function (customProvider) {}]);...提供者本身var services = angular.module('services', []);services.provider('custom', function ($http) {});而且我有这样的错误:Uncaught Error: Unknown provider: $http from services 有任何想法吗?谢谢!
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

这可能会给您带来一些杠杆作用:


var initInjector = angular.injector(['ng']);

var $http = initInjector.get('$http');

但是请注意,成功/错误回调可能会使您处于应用启动和服务器响应之间的竞争状态。


查看完整回答
反对 回复 2019-10-25
?
白衣非少年

TA贡献1155条经验 获得超0个赞

这是一个古老的问题,如果我们要依赖库的核心功能,似乎我们正在做一些鸡蛋工作。


我所做的只是绕过,而不是从根本上解决问题。创建一个包装整个身体的指令。例如


<body ng-app="app">

  <div mc-body>

    Hello World

  </div>

</body>

现在mc-body需要在渲染之前(一次)进行初始化,例如。


link: function(scope, element, attrs) {

  Auth.login().then() ...

}

Auth 是服务或提供者,例如


.provider('Auth', function() {

  ... keep your auth configurations

  return {

    $get: function($http) {

      return {

        login: function() {

          ... do something about the http

        }

      }

    }

  }

})

在我看来,我确实可以控制引导程序的顺序,这是在常规引导程序解析完所有提供程序配置然后尝试初始化mc-body指令之后。


在我看来,该指令可以领先于路由,因为路由也通过指令ex注入。<ui-route />。但是我对此可能是错误的。需要更多调查。


查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 615 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信