传递多个参数Angularjs资源

时间:2015-11-01 14:17:32

标签: php angularjs slim angularjs-resource

我有 UsersService.js

app.factory('UsersService', function($resource) {
return $resource('api/users/:id', {}, {
    update: {method:'PUT'},
});

Index.php (PHP Slim Framework的API)一起

...
$app->get('/users/:id', 'getUser');
$app->get('/users/:username', 'getUserByUsername');
function getUser(){ ... }
function getUserByUsername(){ ... }
...

现在,当我尝试拨打某个地方时UsersService.get({id:15});它有效,但是当我尝试拨打UsersService.get({username:'test'});时,它无法正常工作......

我尝试了一切可能在Google上找到的方式,但我无法让它发挥作用。我可以通过用户名创建一个单独的服务来获取用户,但是如果可能的话,我想将所有内容保留在一个服务中。

请帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

你必须告诉angular $ resource从哪里获取值:username。

有关详细信息,请查看documentation

更改 UserService.js

app.factory('UsersService', function($resource) {
  return $resource('api/users/:id/:username', {id:'@id',username:'@username'}, {
    update: {method:'PUT'}
});

编辑:

你的php脚本如何知道当它获得/users/123它应该运行第一条路线时,但是当它获得/users/123joe它应该运行下一条路线?你以某种方式验证它吗?如果不是,你应该在PHP脚本中更改路由,以便更清楚。