2016-09-14 3 views
-1

Я пытаюсь использовать операции Angular для CRUD, но у меня возникли проблемы с отправкой POST-запросов на сервер.

Вот мой контроллер:

angular.module('myModule').controller("ListingCtrl", function($scope, posts) { 

    $scope.addProject = function() { 
     if (!$scope.title || $scope.title === '') { 
      return; 
     } 
     posts.create({ 
      title: $scope.title, 
      short_description: $scope.short_description 
     }); 
     $scope.title = ''; 
     $scope.short_description = ''; 
    }; 

}); 

Вот моя служба:

angular.module('myModule', []) 
.factory('posts', [ 
    '$http', 
    function($http){ 
    var o = { 
     posts: [] 
    }; 
    return o; 
}]); 

o.create = function(post) { 
    return $http.post('linktomyliveAPI', post).success(function(data){ 
     o.posts.push(data); 
    }); 
}; 

И, наконец, вот мнение:

<div ng-controller="ListingCtrl"> 

<form ng-submit="addProject()"> 
    <input type="text" ng-model="title"></input> 
    <input type="text" ng-model="short_description"></input> 
    <button type="submit">Post</button> 
</form> 

Я был в состоянии успешно сделать GET req но по какой-то причине я не могу понять POST.

Мой API был построен с использованием Django Rest Framework, если это имеет значение.

Спасибо!

+0

любая ошибка в консоли браузера? –

+0

В чем проблема, стоящая перед вами? Список ошибок консоли? – Aravind

+0

Нет. Похоже, что запрос просто не отправляется. @Aravind: Нет никаких консольных ошибок. Должен ли я добавить $ log на мой сервис? – Jeff

ответ

0

Я думаю, что, как вы добавили создать метод не является правильным, вы должны добавить этот метод на объекте фабрики

Поместите метод создания на объект, возвращаемый с завода.

В вашей службе

angular.module('myModule', []) 
    .factory('posts', ['$http',function($http){ 
     var create = function(post) { 
      return $http.post('linktomyliveAPI', post).success(function(data){ 
      o.posts.push(data); 
      }); 
     }; 

     var o = { 
     posts: [], 

     // expose create method on factory object 
     create: create 
     }; 

     return o; 
}]); 

Надеюсь, это решит вашу проблему.

0

Исправлено.

Мне пришлось изменить некоторые параметры на стороне сервера, чтобы заставить это работать.

Смежные вопросы