gpt4 book ai didi

javascript - 注入(inject)由 module.provider 定义的服务

转载 作者:行者123 更新时间:2023-11-28 07:42:35 25 4
gpt4 key购买 nike

很抱歉问这样的问题,但我已经花了几天时间来解决这个问题。但我真的需要帮助。我已经读过Understanding Dependency Injection以及其他堆栈问题 use $http inside custom provider in app config使用$注入(inject)器 on run block 在我的代码中也不起作用。

也许这里有人可以帮助我,我也担心如何注释我的提供程序上的注入(inject)以进行缩小。

My code in 

Here

最佳答案

问题是,当您在 _getItem 中调用 $http 时,您位于“ Controller ”中。解决方案可能是这样做:

  this.$get = function($http) {
return {
mainUrl : _mainUrl,
getItem : _getItem,
httpWrapper : $http
};

然后在_getItem中赋值(或者直接使用httpWrapper):

var $http = this.httpWrapper;

为了避免缩小问题,您可以将注入(inject)添加到方法$get中:

  this.$get =   ['$http', function($http) {

这里是更新后的 Plunker:http://plnkr.co/edit/m7oXNolo6iV8Zy1NJ0vx

编辑:我认为您想要实现的目标是:

  var _getItem = function() {
var _d = null;
console.log(this)
var $http = this.httpWrapper;
var $q = this.qWrapper;
_d = $q.defer();
$http.get(_mainUrl)
.success(function(data) {
console.log(data);
_d.resolve( {data: data, x: "efe"} );
})
.error(function(status) {
_d.resolve( status );
});
return _d.promise;
};

$q.defer() 允许推迟对 Controller 的 http 调用,然后在 Controller 上您必须编辑以下内容:

facade.getItem().then(function(data){
$scope.myReturn = data;
}

更新了 Plunker:http://plnkr.co/edit/xR1d3KnWhX51jHHZ8t3m

注意:考虑到 then 的本质是异步的,因此如果之后直接使用该变量,它仍然是未定义的

关于javascript - 注入(inject)由 module.provider 定义的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27842571/

25 4 0
文章推荐: ios - popViewController(动画 : true) animation works slow
文章推荐: c++ - 用c++读取二进制文件出错
文章推荐: jquery - 在应用程序的 .erb View 中交替使用 rails image_uploader.rb 生成
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com