Angularjs- $ ngSource-DELETE: Как получить данные ответа, которые возвращает серверная часть?

0

Почему console.log(response) не вызвал ответ от сервера. Как я могу получить "1" или "0", которые возвращает SpringMVC?

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


app.factory('baseRequest', ["$resource", function ($resource) {

    return $resource("/apis/:id/:method/", {method: '@method', id: '@id'}, {

        query: {method: 'get', isArray: false}
    });

}]);


app.controller("MyCtrl", ["$scope", "baseRequest", function ($scope, baseRequest) {


    $scope.deleteUser = function (id) {

        baseRequest.delete({method: "deleteUser.req", id: id}, function (response) {

          //I can't get the response data from server side here. 

            console.log(response);

        }, function (error) {

            console.log(error);

        });
    };

}]);

Вот мой файл SpringMVC, он извлекает информацию "1" или "0", но я не понимаю, как это получить?

    @ResponseBody
    @RequestMapping(value = "/{id}/deleteUser", method = RequestMethod.DELETE)
    public String deleteUser(@PathVariable("id") Integer id) {

        System.out.println(id);


        if (userDao.deleteUser(id)) {


            return "1";

        } else {

            return "0";
        }

    }
  • 0
    почему вы передаете переменную метода в фабрику ресурсов?
Теги:

1 ответ

0

весь код мне кажется неправильным. На самом деле вы должны выглядеть так:

app.factory('baseRequest', ["$resource", function ($resource) {

return $resource("/apis/:id", { id: '@id'}, {

    query: {method: 'get', isArray: false}
});

}]);

и вы должны выглядеть так:

app.controller("MyCtrl", ["$scope", "baseRequest", function ($scope, baseRequest) {


$scope.deleteUser = function (id) {

    baseRequest.delete({id: id}, function (response) {

      //I can't get the response data from server side here. 

        console.log(response);

    }, function (error) {

        console.log(error);

    });
};

}]);

Когда вы определяете ресурс для конечной точки, angularjs автоматически создает четыре метода (глаголы) (get, delete, put, post) для вас. поэтому вам не нужно передавать имя метода в веб-api.

  • 0
    Я новичок в Angularjs. Но в соответствии с тем, что вы предложили, у меня есть путаница по этому поводу Как может метод на стороне клиента «удалить» запрос к методу «deleteUser» на стороне сервера, он может иметь значение типа @RequestMapping = «/ {id} / deleteUser».

Ещё вопросы

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