如何定义不使用REST GET查询参数的Angular资源?

时间:2013-11-15 02:49:25

标签: rest angularjs

目前我在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以这种方式做到这一点?

1 个答案:

答案 0 :(得分:2)

我猜问题是参数名称的不合格。

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

或者在你的通话中它应该是下划线

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

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