在aurelia中使用路由器时如何设置/读取查询字符串?

bed*_*edo 13 javascript query-string aurelia aurelia-navigation aurelia-router

使用aurelia.io框架路由器时,读取和设置查询字符串的首选方法是什么?

例如,在网址中: http://www.myapp.com/#/myroute1/?s=mystate

我如何阅读和设置?s=mystate网址的一部分并让aurelia路由器正确导航并记住该状态,这样每当我到达我的route1viewmodel时,我都可以读取该状态变量并对其执行某些操作?

us3*_*s3r 20

在viewmodel上,您可以实现方法activate(params,routeConfig),对象参数应该包含您的查询变量

activate(params, routeConfig){
 console.log(params.s); //should print mystate
}
Run Code Online (Sandbox Code Playgroud)

要导航到某个路线,您必须在app.js中指定此路线的名称(名称:'redirect')

 config.map([
      { route: ['','welcome'],  moduleId: './welcome',      nav: true, title:'Welcome' },
      { route: 'flickr',        moduleId: './flickr',       nav: true, title:'Flickr' },
      { route: 'redirect', moduleId: './redirect', name: 'redirect'}, 
      { route: 'child-router',  moduleId: './child-router', nav: true, title:'Child Router' }
    ]);
Run Code Online (Sandbox Code Playgroud)

然后使用方法NavigateToRoute和参数.

router.navigateToRoute('redirect', { s:'mystate'}, {replace: true});
Run Code Online (Sandbox Code Playgroud)