使用 aurelia.io 框架路由器时,读取和设置查询字符串的首选方法是什么?
例如在url中:http://www.myapp.com/#/myroute1/?s=mystate
我如何读取和设置 url 的 ?s=mystate
部分并让 aurelia 路由器正确导航并记住该状态,这样每当我到达我的 route1
viewmodel 我可以读取那个状态变量并用它做些什么吗?
最佳答案
在 viewmodel 上你可以实现方法 activate(params, routeConfig) 并且对象参数应该包含你的查询变量
activate(params, routeConfig){
console.log(params.s); //should print mystate
}
要导航到某个路由,您必须在 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' }
]);
然后使用带参数的 NavigateToRoute 方法。
router.navigateToRoute('redirect', { s:'mystate'}, {replace: true});
关于javascript - 在 aurelia 中使用路由器时如何设置/读取查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30852727/