gpt4 book ai didi

javascript - 将 $resource 与 Rest 服务结合使用

转载 作者:行者123 更新时间:2023-12-02 15:29:07 25 4
gpt4 key购买 nike

我正在尝试熟悉 $resource 以便使用 RESTful Web 服务。

因此,为了尝试,我声明了一个这样的工厂:

'use strict';

angular.module('BalrogApp').factory('Req', ['$resource', function($resource) {
return $resource('http://localhost:8000/api/catalog/requests/:id', {id: '@id'}, {
'update': { method: 'PUT'},
'query': { method: 'GET'}
});
}]);

在我的 Controller 中我有这个:

angular.module('BalrogApp').controller('requestsController', function(Req, $route, $rootScope, $scope, $location, $routeParams) {
this.$route = $route;
var controllerScope = this;

this.r = Req.get({ id:4 });

console.log(this.r);

这工作正常,在我的控制台中,我可以看到我的对象以及从 id 4 的项目的服务中检索到的数据。

但是,我不确定我是否正确检索数据,因为我存储在 r 中的对象包含一个 ID,就像对象详细信息中应有的那样(单击“对象”)浏览器控制台显示对象详细信息(包括其 id),但控制台上显示的对象本身 (r) 仅包含 2 个字段,显示如下: Object { $promise: Object, $resolved :假}

所以,最后, console.log(this.r); 有效,但 console.log(this.r.id); 无效,即使r 应该包含一个 id,就像浏览器检查器中的对象详细信息一样。

此外,我如何配置此服务以便能够将 get()id 参数一起使用,就像我正在做的那样,这会导致调用 http://localhost:8000/api/catalog/requests/:id 但也不带 id 参数,这会导致调用 http://localhost:8000/api/目录/请求

最佳答案

由于对 REST API 的调用是异步的,因此在使用 Req.get({ id:4 });

时,您需要等待返回的 Promise 解析

用途:

Req.get({ id:4 }).$promise.then(function(result){
console.log(JSON.stringify(result));
});

相反。

对于问题的第二部分:使用没有 id 属性的数据应该没问题。但是,此数据将在请求正文中传输,而不是作为请求参数。

关于javascript - 将 $resource 与 Rest 服务结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33479261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com