2015-11-01 105 views
0

UsersService.js傳遞多個參數Angularjs資源

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

隨着的index.php(和PHP框架修身API)

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

現在,當我嘗試調用某處UsersService.get({id:15});它有效,但是當我嘗試撥打UsersService.get({username:'test'});時它不起作用...

我儘可能地在Google上找到了可能的方式,但我無法完成工作。我可以做一個單獨的服務來通過用戶名獲取用戶,但是如果可能的話,我想將所有這些保存在一個服務中。

請大家幫忙,謝謝!

回答

0

你必須告訴角度$資源從哪裏得到的價值:用戶名。

欲瞭解更多詳細看documentation

變化YOUT 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腳本,更清晰。

+0

感謝您的回覆。我發現不可能有兩個相同的路由(即使他們添加了不同的參數:id /:username,因爲這顯然沒有關係),所以我添加了'「getUserByUsername」:{method:'GET',url: 'user,userUsername /:username'},'在UsersService.js和php中,我添加了'$ app-> get('/ userByUsername /:username','getUserByUsername');'現在它的工作方式是我想要的。 – justonequestion