Почему я получаю ошибку 404 при использовании ngresource save? - PullRequest
0 голосов
/ 19 июня 2019

Я следую старому учебнику Pluralsight, который больше не обновляется и попал в стену: я использую Visual Studio 2013 и Angular JS v1.4 и должен использовать этот учебник, так как мы используем эту версию AngularJS вработа.

HTML-шаблон: NewEvent.html

<div style="padding-left:20px; padding-right: 20px">
<div class="container">
    <h1>New Event</h1>
    <hr />
    <form name="newEventForm">
        <fieldset>
            <label for="eventName">Event Name:</label>
            <input id="eventName" type="text" required ng-model="event.name" placeholder="Name of your event..." />
            <label for="eventDate">Event Date:</label>
            <input id="eventDate" type="text" required ng-pattern="/\d\d/\d\d/\d\d\d\d/" ng-model="event.date" placeholder="format (mm/dd/yyyy)..." />
            <label for="eventTime">Event Time:</label>
            <input id="eventTime" type="text" required ng-model="event.time" placeholder="Start and end time..." />
            <label for="eventLocation">Event Location:</label>
            <input id="eventLocation" type="text" required ng-model="event.location.address" placeholder="Address of event..." />
            <br />
            <input id="eventCity" type="text" required ng-model="event.location.city" class="input-small" placeholder="City..." />
            <input id="eventProvince" type="text" ng-model="event.location.province" class="input-small" placeholder="Province..." />
            <div>{{event.name}}</div>
            <label for="eventImageUrl">Image:</label>
            <input id="eventImageUrl" type="url" ng-model="event.imageUrl" class="input-xlarge" placeholder="Url of image..." />
        </fieldset>

        <img ng-src="{{event.imageUrl}}" src="" />
        <br />
        <br />

        <button type="submit" ng-disabled="newEventForm.$invalid" ng-click="saveEvent(event, newEventForm)" class="btn btn-primary">Save</button>
        <button type="button" ng-click="cancelEdit()" class="btn btn-default">Cancel</button>
    </form>
</div>

КОНТРОЛЛЕР: EditEventController.js

'use strict'

eventsApp.controller('EditEventController',
    function EditEventController($scope, eventData) {

    $scope.event = {};

    $scope.saveEvent = function (event, newEventForm) {
        if (newEventForm.$valid) {
            eventData.save(event)
                .$promise
                .then(function (response) { console.log('success', response) })
                .catch(function (response) { console.log('failure', response) });
        }
    };

    $scope.cancelEdit = function () {
        window.location = "./EventDetails.html";
    }
});

СЕРВИС: EventData.js

eventsApp.factory('eventData', function ($resource) {
    var resource = $resource('data/event/:id.json', { id: '@id' }, { "getAll": { method: "GET", isArray: true, params: { something: "foo" } } });
    return {
        getEvent: function () {
            return resource.get({ id: 1 });
        },
        save: function (event) {
            event.id = 999;
            return resource.save(event);
        }
    }
});

Мне пришлось указать «.json» в строке ресурсов var, и это единственное изменение, которое я внес в код, данный преподавателями, потому что это другая страница (которая использует в сервисе функцию getEvent)не сработает, если я этого не сделаю.

Когда я нажимаю "Сохранить", я получаю ответ "Сбой" в консоли, даже если модель для события построена правильно.

Снимок экрана ошибкив консоли: -

Screenshot of error in console

Структура файла: -

File structure

Кажется, что ошибка 404 прикреплена к месту сохранения,хотя, насколько я могу судить, URL-адрес правильный.Как правильно использовать ngresource.save для сохранения этого файла?

...