Angular $ http.get不返回数据

时间:2016-01-01 09:53:25

标签: angularjs

我创建了一个帮助服务来包装$ http.get。

self.apiGet = function (url, success, failure, always) {
           
            $http.get(url)
                .then(function (result) {
                    success(result);
                    if (always != null)
                        always();
                }, function (result) {
                    if (failure != null) {
                        failure(result);
                    }
                    else {

                    }
                    if (always != null)
                        always();
                });
        }

在我的控制器类中,调用getData(val)时数据不会返回到视图。我在调试时从api返回数据。

 $scope.getData = function (val) {
        return helper.apiGet(url,
            function (result) {
                return result.data;
            });
    }; 

1 个答案:

答案 0 :(得分:4)

你应该正确使用promises。所以服务变成:

self.apiGet = function(url) {
    return $http.get(url).then(function(result) {
        return result.data;
    });
};

......它在控制器中消耗如下:

helper.apiGet(url).then(function(data) {
    $scope.data = data;
});