使用ngResource访问标头

时间:2017-05-03 13:53:05

标签: angularjs http-headers ngresource

我有一个Api,其中检索自定义标题:X-Total-Count:“项目总数”,我使用角度ngResource

我的工厂看起来像这样:

app.factory("shopFactory", function ($resource) {
    return {
        User: $resource("http://localhost:58495/users/api/User/?id=:id", { id: "@id" }),
        Category: $resource("http://localhost:58495/category/:id", { id: "@id" }),
        Product: $resource("http://localhost:58495/products/?from=:from&to=:to", { from: "@from", to: "@to" })
    };
});

当我打电话给他时:

var productServer = shopFactory.Product.query({ from: 0, to: 10 }).$promise.then(function (response) {
        $scope.product = response;
        console.log(response);
    }, function (error) {
        console.log("ERROR");
        console.log(error);
    });

如何通过ngResource访问我的自定义标头,我可以访问它但是使用$ http,我想用$ resource方式来实现,谢谢

1 个答案:

答案 0 :(得分:0)

可以使用三个参数调用autoload.php操作方法:

query

使用Resource.query([parameters], [success], [error]) 参数调用成功回调,其中值是填充的资源实例或集合对象。使用(value (Object|Array), responseHeaders (Function), status (number), statusText (string))参数调用错误回调。

(httpResponse)

有关详细信息,请参阅AngularJS $resource Service API Reference

  

了解使用var productServer = shopFactory.Product.query( { from: 0, to: 10 }, function success (value, headers, status, statusText) { $scope.product = value; console.log(value); console.log(headers()); }, function error (error) { console.log("ERROR"); console.log(error); } ); 和成功函数

之间的区别

$promise.then方法中的函数仅公开最终响应的.then。成功回调会暴露四个参数:value

value (Object|Array), responseHeaders (Function), status (number), statusText (string)可以作为参数传递给其他函数,并且可以多次调用其$promise方法。

另一个非常重要的区别是.then方法根据返回的值创建一个新的承诺。

  

链接承诺

     

因为调用promise的.then方法会返回一个新的派生promise,所以很容易创建一个promise链。

     

可以创建任意长度的链,因为可以使用另一个承诺来解决承诺(这将进一步推迟其解决方案),可以暂停/推迟对承诺的解决链中的任何一点。这使得实现强大的API成为可能。

     

— AngularJS $q Service API Reference (Chaining Promises)