3

目前我在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 这样做?

4

1 回答 1

2

我猜问题在于参数名称不一致。

在定义中你有:{_id:'@_id'}),它应该是{id...

或者在您的通话中,它应该带有下划线

$scope.user = ayApi.Users.get({_id:$routeParams.userId});

任何其他参数(未在资源定义中映射)都被视为查询字符串参数。这就是为什么 Angular 决定将您的id作为查询字符串部分附加。它不是_id

于 2013-11-15T03:11:52.110 回答