2012-11-09 79 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参数。

相关问题