AngularJS $ http PUT запрос - PullRequest
2 голосов
/ 09 мая 2019

Я создаю приложения CRUD с AngularJS и Django REST API.

Я успешно создал метод get и post, но не получаю, как разместить запрос.я пробовал stackoverflow много проблем и YouTube, но я не мог разобраться.

мой текущий контроллер:

app.controller('crudCtrl', function($scope, $http) {

  $http.get("http://127.0.0.1:8000/api/v1/contact/?format=json")
  .then(function(response) {
      $scope.contacts = response.data; //this is get method that displayed all the list of contact
  });

  $scope.formModel = {}; // this is same input.js, it is POST method to to send data to database
    $scope.onSubmit = function () {
        console.log("hey, i am submitting");
        console.log($scope.formModel);

        $http.post('http://127.0.0.1:8000/api/v1/contact/', $scope.formModel).
        success(function (data) {
            console.log(":)");
        }).error(function (data) {
            console.log(":(");
        });
    };


  $scope.selectUser = function (contact) {
        console.log(contact);                    // it will select the data exactly where you click
        $scope.clickedUser = contact;
    };

    $scope.updateUser = function (argument) { // it will get the form editable exactly which contact you clicked
    };

});

и мой вид редактирования, когда я нажимаю на кнопку редактирования, формабудет отображаться:

<form>
      <input type="text" ng-model="clickedUser.userid">
      <input type="text"  ng-model="clickedUser.name">
      <input type="text" ng-model="clickedUser.email">
      <input type="text"  ng-model="clickedUser.phone">
      <button type="submit" ng-click="updateUser()" data-dismiss="modal">Submit</button>
    </form>

Следует отметить, что форма редактирования хорошо работает на стороне клиента , но не отправляет данные в бэкэнд / API / базу данных.

Может кто-нибудь сказать мне, как я могу сделать $http.put запрос?я пытался решить проблему w3school, youtube и stackoverflow.

У меня есть огромное решение, но я не могу его решить.

это моя конечная точка API для чего-либо: http://127.0.0.1:8000/api/v1/contact/, так что если я хочу обновитьполе, я должен пройти через этот URL: http://127.0.0.1:8000/api/v1/contact/1 в конце URL-адрес id

Я надеюсь, что это ясно для вас

Ответы [ 2 ]

2 голосов
/ 10 мая 2019

Вы также можете попробовать это

$http({method: "PUT", url: URL}).
        then(
           function(response) {
        }, function(response) {
      });
0 голосов
/ 09 мая 2019

Можете ли вы просто использовать угловой метод?

См .: https://docs.angularjs.org/api/ng/service/$http#put

var clientData = {
   text: "Put this somewhere"
};
$http.put( url, clientData ).then( function( serverResponse ) {
    console.log(serverResponse);
},( error )=>{
    console.log(serverError);
});
...