Angular factory $ resource没有返回任何值

时间:2015-06-16 13:32:02

标签: json angularjs

由于客户需要支持IE8,我最近将我的角度应用从 1.3 降级为 1.2

我的工厂资源功能正在 1.3 中工作,但现在返回的 JSON 响应中未显示$values数组。

以下是工厂功能的样子:

offersController.factory('Offer241GetAll', function ($resource, config) {
    return $resource(config.apiUrl + '/TwoForOne/GetAll');
});

调用方法的控制器:

offersController.controller('offers241Controller', function ($scope, Offer241GetAll) {
    Offer241GetAll.get(function (data) {
        $scope.offers = data.$values;
    });
});

data.$values应包含一个数组,但data只包含:

$promise: Object
$resolved: true

奇怪的是,此$http.get()方法有效,我已确认API正在发送值:

$http.get(config.apiUrl + '/TwoForOne/GetAll').then(function(r){
    $scope.offers = r.data.$values;
});

如何在版本 1.3 中继续使用我之前的资源功能?
在角度的不同版本中它是如何工作的有什么不同吗?

1 个答案:

答案 0 :(得分:0)

$ http和$ resource方法的工作方式不同。

$ http get方法返回一个promise。

$ resource方法Offer241GetAll.get返回一个具有promise和promise状态的对象。 你可以尝试这样的事情:

offersController.controller('offers241Controller', function ($scope, Offer241GetAll) {
Offer241GetAll.get().$promise.then(function (data) {
    $scope.offers = data;
});

});

有关此内容的更多信息,您可find here