我有一个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方式来实现,谢谢
答案 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成为可能。