我正在开发一个使用 AngularJS+ng-resource 构建的 SPA,它与使用 Node.js+Express.js+Sequelize 构建的 RestAPI 一起工作。
问题:express.js 接受并将queryString 解析为 Json Object。如果你使用这个 json 对象作为参数,Ng-resource 会产生一个错误的 queryString。
这是 angularJS ng-resource RestAPI 调用:
var queryString = {include: [{model: 'player', attributes: ['name','surname']}], where: {club: 32} };
Contract.query(queryString,
function(data) {
vm.club_players = data;
}
);
那应该是这样的:
include[1][attributes][]:surname&
include[1][attributes][]:name&
include[1][model]:player&
where[club]:32
实际上,如果使用这个 queryString 而不是普通的 json 对象,它会起作用:
var queryString = {'where[id_club]': id_club, 'include[1][model]':'real_player', 'include[1][attributes][]':'id', 'include[1][attributes][]':'name', 'include[1][attributes][]':'surname'};