Как создать новый экземпляр в Angularjs? Метод сохранения CRUD не работает

0

Когда я пытаюсь создать новую задачу, ничего не происходит, и никакой запрос не отправляется. Почему это так? Как я могу отладить проблему?

Вот как это выглядит

Здесь функция $ scope.add

 var app = angular.module('Tasks', ['ngResource', 'xeditable']);

  app.factory('Task', [
    '$resource', function($resource) {
      return $resource('/tasks/:id', {
        id: '@id'
      }, {
        update: {
          method: 'PUT'
        }
      });
    }
  ]);

  this.TasksCtrl = [
    '$scope', 'Task', function($scope, Task) {

      $scope.add = function() {
        var task;
        task = Task.create($scope.newTask);
        $scope.tasks.push(task);
        return $scope.newTask = {};
      };
  ];

Вот моя часть html.

<div ng-controller='TasksCtrl' class='tasks-container'>
  <form ng-submit='add()'>
    <input type='text' ng-model='newTask.title'/>
    <button type='button' class='btn btn-default btn-sm'>
      <span class='glyphicon glyphicon-plus'></span> Add
    </button>
  </form>
  • 0
    вы не добавляете функцию create вы добавляете функцию update в свой класс ресурсов. Попробуйте task = Task.update($scope.newTask); вместо
  • 0
    Вы правы. Но как обновление может иметь отношение к запросу POST? Я не совсем понимаю
Показать ещё 1 комментарий

1 ответ

1
Лучший ответ

В вашей форме есть директива ng-submit которая вызывается при отправке формы. Но у вас нет кнопки отправки в вашей форме (<button type='button'> не отправляет форму). Измените это:

<button type='submit' class='btn btn-default btn-sm'>

и он должен работать.

  • 0
    Это помогло частично. Спасибо, в любом случае. Теперь у меня другая проблема

Ещё вопросы

Сообщество Overcoder
Наверх
Меню