在Angular中更新PUT方法?

时间:2015-07-07 14:54:01

标签: angularjs mean-stack meanjs angular-ui-router

在使用ui-router而不是ngRoute进行路由时,我找不到在Angular中使用$ update PUT方法的任何示例。使用ui-router时是否可以使用$ update PUT方法?

1 个答案:

答案 0 :(得分:2)

您在问题评论中链接的示例中的$update方法与$routeParams$stateParams无关。那些(在大多数情况下)只是引用url中存在的参数。

例如,如果您在配置中将网址声明为:/#/foo/:id/bar,并且您访问了网址:/#/foo/5/bar?hello=world&verified=1,那么$routeParams$stateParams将是一个对象看起来像:

{id: 5, hello: "world", verified: "1"}

注意:对于$ stateParams,我认为配置中的url可能需要声明为:/foo/:id/bar?hello&verified

对于$update方法和PUT请求,这些请求与角度资源模块有关。您将从您引用的示例中注意到,声明了使用$resource服务的服务(工厂)。如果您查看退货部分下的docs,您会看到$resource服务将返回:

  

资源"类"具有默认资源操作集的方法的对象,可选择使用自定义操作进行扩展。默认设置包含以下操作:

{'get':    {method:'GET'},
 'save':   {method:'POST'},
 'query':  {method:'GET', isArray:true},
 'remove': {method:'DELETE'},
 'delete': {method:'DELETE'} };

进一步指出:

  

保存,删除和删除操作可以作为带有$前缀的方法使用。

所以$save$remove$delete可以,但没有$更新。这就是示例中的服务具有以下行的原因:

...
'update': { method: 'PUT'},
...

它意味着扩展这些默认操作集,以便$update作为对象的方法可用,它将使用HTTP PUT方法而不是像其他人一样使用GET / POST / DELETE

我建议您在$routeParams$stateParamsngResource上进一步阅读,但希望它们之间的区别是明确的。