我想传递一个字符串化的 JSON 作为参数,但 Angular 在我的查询末尾不断添加额外的 &。这让我很头疼。
我是这样称呼它的:
$scope.products = ProductSvc.getProductsList('{branchId:{"$exists":"true"}}');
这反过来又调用:
ProductRes.q({'queryStr':params});
以下是 q 的定义方式:
var ProductRes = $resource('/products/:productId',
{ 'productId':'@productId','queryStr':'@query' },
{
'$save':{method:'POST', params:{'productId':'@productId'}, isArray:true},
'$get':{method:'GET', params:{'productId':'@productId'}},
'q':{method:'GET', isArray:true, url:'/products?:queryStr'},
'$query':{method:'GET', isArray:true, url:'/products'},
}
);
所以问题是,angularJS GET:
/products?{branchId:{"$exists":true}}& // <- This goddamn ampersand!!
额外的 & 号导致我的后端行为不端。
如何摆脱它?