Angular 中的 $update PUT 方法?
$update PUT method in Angular?
当使用 ui-router 而不是 ngRoute 进行路由时,我在 Angular 中找不到任何使用 $update PUT 方法的示例。使用 ui-router 时是否可以使用 $update PUT 方法?
您在问题评论中链接的示例中的 $update
方法与 $routeParams
或 $stateParams
无关。这些(在大多数情况下)仅引用 url 中存在的参数。
例如,如果您在配置中将 url 声明为:/#/foo/:id/bar
并且您访问了 url:/#/foo/5/bar?hello=world&verified=1
然后 $routeParams
和$stateParams
将是一个如下所示的对象:
{id: 5, hello: "world", verified: "1"}
注意:在$stateParams的情况下,我认为config中的url可能需要声明为:/foo/:id/bar?hello&verified
至于$update
方法和PUT
请求,这些与angular-resource模块有关。从您引用的示例中,您会注意到声明了一个使用 $resource
服务的服务(工厂)。如果您查看 Returns 部分下的 docs,您会看到 $resource
服务将 return:
A resource "class" object with methods for the default set of resource actions optionally extended with custom actions. The default set contains these actions:
{'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'} };
它进一步指出:
The actions save, remove and delete are available on it as methods with the $ prefix.
因此 $save
、$remove
、$delete
可用但没有 $update。这就是示例中的服务具有以下行的原因:
...
'update': { method: 'PUT'},
...
它旨在扩展这些默认操作集,以便 $update
可以作为对象的方法使用,并且它将使用 HTTP PUT 方法而不是像其他方法一样的 GET/POST/DELETE。
我建议您进一步阅读 $routeParams, $stateParams and ngResource,但希望它们之间的区别很清楚。
当使用 ui-router 而不是 ngRoute 进行路由时,我在 Angular 中找不到任何使用 $update PUT 方法的示例。使用 ui-router 时是否可以使用 $update PUT 方法?
您在问题评论中链接的示例中的 $update
方法与 $routeParams
或 $stateParams
无关。这些(在大多数情况下)仅引用 url 中存在的参数。
例如,如果您在配置中将 url 声明为:/#/foo/:id/bar
并且您访问了 url:/#/foo/5/bar?hello=world&verified=1
然后 $routeParams
和$stateParams
将是一个如下所示的对象:
{id: 5, hello: "world", verified: "1"}
注意:在$stateParams的情况下,我认为config中的url可能需要声明为:/foo/:id/bar?hello&verified
至于$update
方法和PUT
请求,这些与angular-resource模块有关。从您引用的示例中,您会注意到声明了一个使用 $resource
服务的服务(工厂)。如果您查看 Returns 部分下的 docs,您会看到 $resource
服务将 return:
A resource "class" object with methods for the default set of resource actions optionally extended with custom actions. The default set contains these actions:
{'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'} };
它进一步指出:
The actions save, remove and delete are available on it as methods with the $ prefix.
因此 $save
、$remove
、$delete
可用但没有 $update。这就是示例中的服务具有以下行的原因:
...
'update': { method: 'PUT'},
...
它旨在扩展这些默认操作集,以便 $update
可以作为对象的方法使用,并且它将使用 HTTP PUT 方法而不是像其他方法一样的 GET/POST/DELETE。
我建议您进一步阅读 $routeParams, $stateParams and ngResource,但希望它们之间的区别很清楚。