工厂功能不返回数据

时间:2016-02-16 18:23:09

标签: javascript jquery angularjs angularjs-factory

我有一个angularjs工厂通过onClick获取数据:

$http.get()

问题是,当我调用方法apiService.get()时,它总是返回'use strict'; app.factory('apiService', ['$http', function ($http) { var apiService = {}; apiService.urlBase = 'http://localhost:1337/api/'; apiService.get = function (urlExtension) { $http({ method: 'GET', url: apiService.urlBase + urlExtension }).then(function successCallback(response) { return response.data; }, function errorCallback(response) { console.log(response); }); } return apiService; }]); ;在控制器中。当我在工厂中记录响应数据时,它会显示正确的数据。 apiService.urlBase变量总是在我的控制器中填充。

你们有什么建议或者我做错了吗?也许这是一个语法错误。

2 个答案:

答案 0 :(得分:1)

您没有返回$http返回的承诺。在return

之前添加$http

答案 1 :(得分:0)

好的,我解决了这个问题。我刚刚通过参数为get()函数传递了一个回调函数。

'use strict';
app.factory('apiService', ['$http', function ($http) {
    var apiService = {};
    apiService.urlBase = 'http://localhost:1337/api/';
    apiService.get = function (urlExtension, callback) {
        var data = {};

        $http({
            method: 'GET',
            url: apiService.urlBase + urlExtension
        }).then(function successCallback(response) {
            data = response.data;
            callback(data);
        }, function errorCallback(response) {
            console.log(response);
        });

        return data;
    }

    return apiService;
}]);