Я пытаюсь познакомиться с $resource
, чтобы использовать веб-службы RESTful.
Так, за попытку, я объявил завод, как это:
'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);
Это прекрасно работает, в моей консоли, я могу видеть мой объект с данными, полученными из служб для элемента с идентификатором 4.
Однако я не уверен, что правильно получаю данные, так как объект, который я храню в r
, содержит идентификатор должен быть в деталях объекта (нажатие на «Объект» в консоли браузера отображает данные объекта, включая его идентификатор), но сам объект (r
), отображаемый на консоли, содержит только 2 поля и представлен следующим образом: Object { $promise: Object, $resolved: false }
.
Таким образом, в конце концов, console.log(this.r);
работает, но console.log(this.r.id);
не даже если r
должен содержать идентификатор, как и в деталях объекта от инспектора браузера.
Кроме того, как я могу настроить эту услугу для того, чтобы иметь возможность использовать get()
с параметром id
так же, как я делаю, что приводит к вызывая http://localhost:8000/api/catalog/requests/:id
, но и без параметра id
, что приводит к вызывая http://localhost:8000/api/catalog/requests
Спасибо за ваш ответ. Что вы подразумеваете под «использованием данных без id»? Я попытался заменить 'Req.get ({id: 4})' на 'Req.get ({})' или даже 'Req.get()', но это не сработало. Также вы могли бы связать меня, где найти какой-нибудь документ об этом '$ обещании', который вы использовали? – Ellone
Не уверен, но 'Req.get()' или, может быть, 'Req.get (null)' должен работать. Посмотрите раздел «Возврат» документации ngResource: https://docs.angularjs.org/api/ngResource/service/$resource для объяснения возвращенного обещания. –
Ну, без параметра эта ошибка срабатывает: 'Ошибка в конфигурации ресурсов для действия' get'. Ожидаемый ответ содержать объект, но получил массив (Request: GET http: // localhost: 8000/api/catalog/requests) '. Не '$ resource ('http: // localhost: 8000/api/catalog/requests /: id'' make' id' обязательное поле может быть? – Ellone