在使用ui-router而不是ngRoute进行路由时,我找不到在Angular中使用$ update PUT方法的任何示例。使用ui-router时是否可以使用$ update PUT方法?
答案 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,$stateParams和ngResource上进一步阅读,但希望它们之间的区别是明确的。