如何用AngularJS删除GET参数?

ran*_*guy 8 get url-routing angularjs

#/order/123?status=success
Run Code Online (Sandbox Code Playgroud)

击中路线'/order/:id'并采取OrderCtrl.

一旦我们访问了$routeParams.query,我们想清除网址#/order/123.怎么能实现这一目标?

Jos*_*ler 17

使用该$location服务,您可以通过为其分配空值来删除搜索参数:

$location.search( 'status', null );
Run Code Online (Sandbox Code Playgroud)

但是您应该注意,默认情况下,这将重新加载当前路由.如果您不想重新加载当前路由,可以在路由定义中禁用它:

$routeProvider.when( '/order/:id', {
  // yada yada...
  reloadOnSearch: false
});
Run Code Online (Sandbox Code Playgroud)

但是$routeUpdate仍然会发射并且可以作出反应.


yoh*_*sen 12

删除所有搜索参数的更有效方法可能是

$location.search({});
Run Code Online (Sandbox Code Playgroud)