почему не работает метод post в angularjs

0

Я пытаюсь отправить данные в api rest, а затем показать эти данные на одной странице. Вот код для формы, где я добавляю данные

<div>
<form name="posts">
            <table class="table">

                <tr>
                   <td>
                        <input name="userId" type="text" ng-model="userId"/>

                    </td>

                    <td>
                        <input name="id" type="text" ng-model="id"/>

                    </td>
                </tr>
                <tr>

                    <td>
                        <input type="text" name="title" ng-model="title" />
                     </td>

                    <td>
                        <input type="text" name="body" ng-model="body" />
                   </td>
                </tr>

                <tr>

                    <td>
                        <input type="button" class="btn btn-default" value="Add" ng-click="AddNewPost()" />

                    </td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
            </table>
        </form>
</div>

Здесь я показываю добавленные данные

<table>
   <thead>
    <tr>
     <th>UserId</th>
     <th>Id</th>
     <th>Title</th>
     <th>Body</th>
    </tr>
   </thead>
   <tbody >
     <td>{{UserId}}</td>
     <td>{{Id}}</td>
     <td>{{Title}}</td>
     <td>{{Body}}</td>
    </tr>

   </tbody>
  </table>

и метод контроллера, который я использовал,

 $scope.AddNewPost = function () {
               var pst = {
                   userId: $scope.userId,
                   id: $scope.id,
                   title: $scope.title,
                   body: $scope.body

               };
               $http({
                 method: 'POST',
                 url:'http://jsonplaceholder.typicode.com/posts/',
                 data: pst,
                headers: {'Content-Type': 'application/x-www-form-urlencoded'}
              }).success(function(data){
               $scope.UserId=pst.userId;
                    $scope.Id=pst.id;
                    $scope.Title=pst.title;
                    $scope.Body=pst.body;
               });

           } 

Но это не работает. Я знаю, что есть вопросы, заданные по этой теме ранее, но они мне не помогли. Я новичок в угловой, поэтому, пожалуйста, помогите мне найти, где я делаю ошибку.

  • 1
    Вы получаете какую-либо ошибку в консоли?
  • 0
    @DivyeshSavaliya Нет, просто не отображаются данные
Показать ещё 10 комментариев
Теги:

2 ответа

0

кажется, что вы используете одну и ту же переменную pst для присвоения значения переменным области видимости. вы должны убедиться, что сначала проверите console.log что pst имеет в нем значения. ты должен сделать

Предполагая, что data возвращены в форме post, содержат объект post

+ Изменить

.success(function(data){
               $scope.UserId=pst.userId;
                    $scope.Id=pst.id;
                    $scope.Title=pst.title;
                    $scope.Body=pst.body;
               });

к

 .success(function(data){
           $scope.UserId=data.post.userId;
                    $scope.Id=data.post.id;
                    $scope.Title=data.post.title;
                    $scope.Body=data.post.body;
               });

Я рекомендую для нескольких данных сообщения, вы должны использовать ng-repeat в своем HTML

  • 0
    он получает пустое значение в ответ, и он хочет показать данные из объекта PST
0
 $http.post(url, dataObject, {
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
        }
      }).then(function(response) {

        //success

      }, function(error) {
      //error
      });

Попробуйте этот код.

Ещё вопросы

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