【发布时间】:2015-11-02 22:04:19
【问题描述】:
我正在尝试熟悉 $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'}
});
}]);
在我的控制器中我有这个:
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: false }。
因此,最终,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/catalog/requests
【问题讨论】:
标签: javascript angularjs rest angular-resource angularjs-resource