Angularjs: ngResource не может получить ответ от возвращений SpringData

0

Файл js:

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


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

    return $resource("/apis/getPageData.req/:id")

}]);


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

    var self = this;

    self.users = [];


    self.fetchAllUsers = function () {

        self.users = baseRequest.query();

        console.log(self.users);
    };

    self.fetchAllUsers();

}]);

Файл контроллера SpringMVC:

@RequestMapping("/apis")
@Controller
public class UserController {

    @Autowired
    private UserDao userDao;


    @ResponseBody
    @RequestMapping(value = "/getPageData", method = RequestMethod.GET)
    public Page<User> getDatas(@RequestParam(value = "pageNo",required = false,defaultValue = "1"
    ) String No) {

        int pageNo = Integer.parseInt(No);

        if (pageNo < 0) {

            pageNo = 1;
        }

        return userDao.getPageData(pageNo);
    }


    @ResponseBody
    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    public List<User> getAll() {

        return userDao.getAll();

    }
}

Когда я запрашиваю метод getAll(), все идет хорошо. Но когда я запрашиваю getDatas(), он идет не так, ngResource не может получить ответ, он показывает мне ошибку следующим образом:

Эта ошибка возникает, когда служба $ resource ожидает отклика, который может быть десериализован как массив, но получает объект или наоборот. По умолчанию все действия ресурса ожидают объекты, кроме запроса, который ожидает массивы.

Чтобы устранить эту ошибку, убедитесь, что ваша конфигурация $ resource соответствует фактическому формату данных, возвращаемых с сервера.

информация об ошибках в журнале консоли

Я не знаю, как соответствовать фактическому формату данных, возвращаемых с сервера.

Фактически, мне нужна вся информация Объектной страницы, включая массив пользователя.

Страница включает страницуNo, currentPage, totallSize, User и т.д.

Теги:
spring-mvc

1 ответ

0

О, я просто ошибся. Это так просто.

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

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

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

}]);

Ещё вопросы

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