ngResource.myfunc()。$ promise.then返回空数组

时间:2016-03-07 18:48:06

标签: javascript angularjs promise angular-resource ngresource

我正在使用angularjs-1.5.0编写我的应用程序。

我创建了一个使用$ resource从api服务器获取数据的服务。该服务称为MyApi。

(function () {

angular.module('myalcoholist').factory('MyApi', ['$resource', '$auth', function ($resource, $auth) {
    return $resource('https://myalcoholist.com:8888/drink/:cmd',
        null, {
                 pouringSpeedTypes: {
                method: 'GET',
                params: {api_token: $auth.getToken(), cmd: 'get_pouring_speed_types'},
                isArray: true
            },
            pouringLocationTypes: {
                method: 'GET',
                params: {api_token: $auth.getToken(), cmd: 'get_pouring_location_types'},
                isArray: true
            }
        });
        });
}]);

})();

在我的控制器中,我使用以下代码使用此服务:

 MyApi.pouringLocationTypes().$promise.then(function(data) {
        console.info(data);
    });
    MyApi.pouringSpeedTypes().$promise.then(function (data) {
        console.info(data);
    });

问题是数据是......我猜的承诺。 这是数据包含的内容:

$promise: d
$resolved: true
length: 0
__proto__: Array[0]

我该怎么办?如何从get请求中获取实际数据?

1 个答案:

答案 0 :(得分:0)

感谢您的评论,您允许我查明问题。

首先,我没有更新我的服务器代码,这就是为什么当你尝试这些地址时你得到方法不允许。

我遇到的问题是这些请求确实返回了空数组。

所以首先我的API返回一个json对象而不是一个数组,所以我将isArray更改为false。

所以在那之后并实际修复我的API服务器,这就是我收到的:

$promise: d
$resolved: true
data: Array[4]
success: true

我的API服务器返回一个包含数据和成功的json。所以事情正在发挥作用!非常感谢。