2012-11-09 121 views
1

假設我有

angular.factory('Service', [ 
    '$resource', function ($resource) { 
     return $resource('/path/:id', {id: '@id'}); 
    }]) 

如果在我的控制器我做

var s = new Service({id: 123}); 
s.$query(); 

其發送到/path的請求,但我希望它的請求發送到/path/123。爲什麼要這樣做以及如何設置參數?我不想提供任何參數給$query()。我想設置「默認」的。由@id表示的那個。

+1

請參閱http://stackoverflow.com/questions/13312162/customizing-angularjs-resource-default-parameters-in-a-service –

回答

1

$query用於獲取記錄列表。你想要的是$get

var s = Service.get({id :123}, function optionalFn(){}); 

查看更多here

+0

這不是我要求的 – akonsu

+0

你確定嗎? 's'將是一個空對象,但是當xhr完成時它會更新到記錄。如果你在xhr結束時需要玩它,你可以選擇'optionalFn'。爲什麼這不是你問的? –

+0

我在問如何設置一個屬性,以及它在哪裏被@ -rule拾取。 – akonsu

0

我認爲這裏的示例控制器實際發送的ID參數到工廠本身,它的工廠並不需要。通過這種方式設置,您需要在query()內部發送參數,或者您可以選擇將工廠代碼中的資源路徑ID值從'@id'更改爲123.我相信'@id'告訴它在查詢({id:123})等調用中查找id參數。

相關問題