猿问

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

主要问题-可能吗?我没有运气尝试..


主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 

有任何想法吗?


谢谢!


精慕HU
浏览 621回答 3
3回答

不负相思意

这可能会给您带来一些杠杆作用:var initInjector = angular.injector(['ng']);var $http = initInjector.get('$http');但是请注意,成功/错误回调可能会使您处于应用启动和服务器响应之间的竞争状态。

白衣非少年

这是一个古老的问题,如果我们要依赖库的核心功能,似乎我们正在做一些鸡蛋工作。我所做的只是绕过,而不是从根本上解决问题。创建一个包装整个身体的指令。例如<body ng-app="app">&nbsp; <div mc-body>&nbsp; &nbsp; Hello World&nbsp; </div></body>现在mc-body需要在渲染之前(一次)进行初始化,例如。link: function(scope, element, attrs) {&nbsp; Auth.login().then() ...}Auth 是服务或提供者,例如.provider('Auth', function() {&nbsp; ... keep your auth configurations&nbsp; return {&nbsp; &nbsp; $get: function($http) {&nbsp; &nbsp; &nbsp; return {&nbsp; &nbsp; &nbsp; &nbsp; login: function() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ... do something about the http&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; }})在我看来,我确实可以控制引导程序的顺序,这是在常规引导程序解析完所有提供程序配置然后尝试初始化mc-body指令之后。在我看来,该指令可以领先于路由,因为路由也通过指令ex注入。<ui-route />。但是我对此可能是错误的。需要更多调查。
随时随地看视频慕课网APP
我要回答