目前我在 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 这样做?
最佳答案
我想问题出在参数名称的不一致上。
在定义中你有:{_id:'@_id'})
,它应该是{id...
或者在你的调用中它应该带有下划线
$scope.user = ayApi.Users.get({_id:$routeParams.userId});
任何其他参数(未映射到资源定义中) 都被视为查询字符串参数。这就是为什么 Angular 决定将您的 id
附加为查询字符串部分的原因。它不是_id
关于rest - 如何定义不使用 REST GET 查询参数的 Angular 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19992615/