добавить новый объект в json-сервер; AngularJS

angularjs json angular-resource json-server

829 просмотра

1 ответ

У меня есть угловое приложение, которое должно работать с json-сервером для извлечения данных и добавления новых данных (отзывы пользователей). поэтому у меня есть база данных JSON с некоторыми массивами, и один из них "feedbacks":[]в настоящее время пуст. По методу PUT я получаю:

PUT /feedbacks 404с сервера, и это консоль Chrome PUT http://localhost:3000/feedbacks 404 (Not Found).

это мой сервис:

angular.module('myApp')
        .constant("baseURL", "http://localhost:3000/")
.service('feedbackService',['$resource','baseURL',function($resource,baseURL){
      this.getFeedback=function(){
        return $resource(baseURL+"feedbacks/:date",null,{
          'update':{
            method:'PUT'
          }
        });
      };
    }]);

это контроллер:

    // contactus.html controllers
.controller('ContactController', ['$scope', function($scope) {
            $scope.feedback = {firstName: "",lastName: "",email: "",date: ""};
        }])
        // Feedback form controller
        .controller('FeedbackController', ['$scope', 'feedbackService', function($scope, feedbackService) {
            $scope.feedbacks = feedbackService.getFeedback().query(function(response) {
                $scope.feedbacks = response;
            });
            $scope.sendFeedback = function() {
                    $scope.feedback.date = new Date().toISOString();
                    $scope.feedbacks.push($scope.feedback);
                    feedbackService.getFeedback().update($scope.feedbacks);
                    $scope.feedbackForm.$setPristine();
                    $scope.feedback = {firstName: "",lastName: "",email: "", date:""};
            };
        }])

getFeedbacks() метод работает и сервер отправляет 200, но за PUT я получаю 404.

Автор: Amir-Mousavi Источник Размещён: 08.11.2019 11:17

Ответы (1)


0 плюса

Решение

ОК, я решил это :)) очень глупая ошибка. не было необходимости нажимать и затем обновлять, поскольку я хотел создать новый объект внутри массива.

$scope.feedback.date = new Date().toISOString();
feedbackService.getFeedback().save($scope.feedback);

а также я изменил услугу на:

return $resource(baseURL+"feedbacks/:id",null,{

иметь автоинкрементный идентификатор для каждого объекта

Автор: Amir-Mousavi Размещён: 20.08.2016 12:36
Вопросы из категории :
32x32