【问题标题】:Angularjs: ngResource can't get the response from SpringData's returnsAngularjs:ngResource 无法从 SpringData 的返回中获取响应
【发布时间】:2016-04-23 02:03:00
【问题描述】:

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 配置与从服务器返回的数据的实际格式匹配。

error info in console log

我不知道如何匹配服务器返回的数据的实际格式。

其实我需要Object Page的所有信息,包括User的数组。

页面包括pageNo、currentPage、totallSize、User等。

【问题讨论】:

    标签: angularjs spring-mvc


    【解决方案1】:

    哦,我刚才弄错了。就是这么简单。

       app.factory('baseRequest', ["$resource", function ($resource) {
    
        return $resource("/apis/getPageData.req/:id", {id: '@id'}, {
    
            query: {method: 'get', isArray: false}
        });
    
    }]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      相关资源
      最近更新 更多