2015-10-09 2 views
0

Я новичок в AngularJS. Я включил код для контроллера, службы и позвонил в службу отдыха. Просьба сообщить, почему звонок не доходит до службы отдыха.http post call не работает от angularjs

Мой код выглядит следующим образом:

app.config(function ($routeProvider) { 
    $routeProvider  
    .when('/addNewNote', { 
    controller: 'AddNewNoteController', 
    templateUrl:'views/addNote.html' 
    }) 

angularjs контроллер, как показано ниже

app.controller('AddNewNoteController', ['$scope','savenote',  function($scope,savenote) { 

    savenote.success(function(eData){ 
      $scope.msg = eData; 

Угловые службы для вызова HTTP Post сидения Service

app.factory('savenote',['$http',function($scope,$http){ 

    return $http({ 
     method: 'POST', 
     url: <url is pasted here>, 
     dataType: 'json', 
     data: { 
     "title" : "123dddd", 
     "contents" : "123ddddtttttt" 
    }, 
     headers: { 'Content-Type': 'application/json; charset=UTF-8' } 
    })   

}]); 

Это обслуживание отдыха

@Path("/savenote") 
@POST 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON) 
    public UserMessages saveNewNote(Note note) throws IOException {  
    ..... 
} 

ответ

0

Вы забыли тип подсказки для $scope:

app.factory('savenote',['$scope', '$http', function($scope,$http){ 

Кроме того, ваш завод должен возвращать объект с методами:

app.factory('savenote', ['$scope', '$http', function ($scope, $http) { 
    return { 
     save: function() { 
      return $http({ 
       method: 'POST', 
       url: "<url is pasted here>", 
       dataType: 'json', 
       data: { 
        "title": "123dddd", 
        "contents": "123ddddtttttt" 
       }, 
       headers: {'Content-Type': 'application/json; charset=UTF-8'} 
      }); 
     } 
    }; 
}]); 

и использовать его следующим образом:

savenote.send().then(function(eData) {}); 

Также, как @SarjanDesai заявил в своем комментарии, $scope не используется в вашем facto ry, поэтому вы должны удалить его.

+1

В заводской '$ scope' вообще не используется –

+0

Правильно, я добавил примечание к моему ответу. – taxicala

+0

Спасибо. Я изменил код на app.factory ('savenote', ['$ http', function ($ http) { return { save: function() { return $ http ({ method: 'POST' ,. ... – Amrutha

0

savenote возвращение $http объект, который имеет then функция для вызова успеха и отказа вызова.

Таким образом обновить функции контроллера с ниже:

savenote.then(function successCallback(eData) { 
    $scope.msg = eData; 
} 

в $ HTTP наследие методы обещают успех и ошибки были устаревшими. Вместо этого используйте стандартный метод. Если $ httpProvider.useLegacyPromiseExtensions установлено в false, то эти методы будут вызывать ошибку $ http/legacy.

+0

Спасибо Sarjan. Я пробовал это, но все еще не работал. – Amrutha

+0

'views/addNote.html' как ниже ...

Amrutha

+0

Проверьте, есть ли у консоли какие-либо ошибки или нет. Если да, то обновите вопрос ... –

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