如何使用othwerwise函数传递查询参数

Dav*_*ang 6 javascript angularjs angular-ui angular-ui-router

给出以下javascript:

$stateProvider
  .state('search', {
    url: '/search?query',
})   
;

$urlRouterProvider.otherwise("search");
Run Code Online (Sandbox Code Playgroud)

当我访问该页面时

base_url?query=x
Run Code Online (Sandbox Code Playgroud)

我被重定向到

BASE_URL /搜索

但查询参数丢失了.

有没有办法用其他函数传递查询参数?

Rad*_*ler 8

一个工作的plunker

UI-Router在这里有原生解决方案.

otherwise没有成为"URL"的字符串,它可能是一个功能.

在此问答中检查它的实际效果:

使用ui-router显示404错误页面时如何更改URL

代码可能是这样的:

$urlRouterProvider.otherwise(function($injector, $location){
    var state = $injector.get('$state');
    state.go("search", $location.search()); // here we get { query: ... }
    return $location.path();
});
Run Code Online (Sandbox Code Playgroud)

$location.search()将给我们params对象,这可能是:{ query: ... }.我们接受它并用这个参数重定向到州搜索...

检查它在这里