无法从角度js服务检索响应

时间:2015-05-08 04:58:25

标签: javascript angularjs angular-promise angular-http

我写了一个返回响应的角度js服务。但是当我试图从控制器调用该服务时,我无法得到确切的响应。

app.service('testservice', function($http){
var details= {};
details.getResponse = function() {
        return $http({
            url: 'send/getdata',
            method: 'GET'
        }).success(function(data, status, headers, config) {
            this.getdata = data;
            return getdata;
        });
    };
    return details;

});

我正在使用以下控制器调用该方法。

app.controller('testcontroller',[ '$scope', '$http','testService',function($scope, $http,testService) {
        var targetresponse = testService.getResponse();
        alert(JSON.stringify(targetresponse))
  })]);

我收到以下回复, { “$$状态”:{ “状态”:0, “待决”:[[{ “承诺”:{ “$$状态”:{ “状态”:0}}},NULL,NULL,NULL]]} }

请告诉我这里的错误。

2 个答案:

答案 0 :(得分:2)

您的testservice服务getResponse方法应该返回一个承诺,您可以在控制器内继续该承诺链。

<强>服务

details.getResponse = function() {
    return $http({
        url: 'send/getdata',
        method: 'GET'
    }).then(function(res) {
        this.getdata = res.data;
        return res.data;
    });
};

您可以使用解析承诺并访问.then函数

中的数据
var targetresponse = testService.getResponse();
targetresponse.then(function(data){
   alert(JSON.stringify(data))
})

答案 1 :(得分:0)

Srv.getData().then(function (success) {
        var data = success.data;
        $scope.myData = data;
    }, function (error) {
    });

最好的方法。