目前我在Angular中定义了一个资源,如下所示:
Users: $resource(APIBASEROUTE +'/users/:_id', {_id: '@_id'})
当我使用此代码呼叫用户时:
$scope.user = ayApi.Users.get({id:$routeParams.userId});
请求作为查询参数发送,如下所示:
http://localhost:3000/api/v1/users?id=526eff826a6100fb22000000
但是它需要像这样点击REST服务器:
http://localhost:3000/api/v1/users/526eff826a6100fb22000000
如何让Angular以这种方式做到这一点?
答案 0 :(得分:2)
我猜问题是参数名称的不合格。
在您的定义中:{_id:'@_id'})
,它应该是{id...
或者在你的通话中它应该是下划线
$scope.user = ayApi.Users.get({_id:$routeParams.userId});
任何其他参数(未在资源定义中映射)被视为查询字符串参数。这就是为什么angular决定将id
作为查询字符串部分附加的原因。它不是_id