#在参数化管线中,断开Aurelia管线
我们有一个示例应用程序,路由器配置定义如下。用户详细信息路由中的“id”参数的值中可以有#,例如/users/#abc。我们可以从“id”为#abc的用户视图导航到用户详细信息视图,没有问题。但是,在刷新详细信息页面时,它会返回到用户视图。有没有办法转义字符“#”#在参数化管线中,断开Aurelia管线,aurelia,Aurelia,我们有一个示例应用程序,路由器配置定义如下。用户详细信息路由中的“id”参数的值中可以有#,例如/users/#abc。我们可以从“id”为#abc的用户视图导航到用户详细信息视图,没有问题。但是,在刷新详细信息页面时,它会返回到用户视图。有没有办法转义字符“#” 由于没有对模板参数进行编码/解码,因此它们的限制性很大。基本上,这意味着[a-zA-Z0-9.]。请注意,这不是来自文档,而是我的观察 如果需要传递任意数据,只需使用查询参数即可。为此,在不定义模板参数的情况下设置路由器 export
由于没有对模板参数进行编码/解码,因此它们的限制性很大。基本上,这意味着
[a-zA-Z0-9.]
。请注意,这不是来自文档,而是我的观察
如果需要传递任意数据,只需使用查询参数即可。为此,在不定义模板参数的情况下设置路由器
export class App {
configureRouter(config, router) {
this.router = router;
config.title = 'Aurelia';
config.map([
{ route: ['', 'home'], name: 'home', moduleId: 'home/index' },
{ route: 'users', name: 'users', moduleId: 'users/index', nav: true },
{ route: 'user', name: 'userDetail', moduleId: 'users/detail' }
]);
}
}
您不必更改任何其他内容(导航、激活中的参数等),这样,在导航时,它将变成查询参数:
router.navigateToRoute('userDetail', { id: '#user123' });
这将导致url:
http://myserver/#user?id=%23user123
由于模板参数未被编码/解码,因此限制性很大。基本上,这意味着[a-zA-Z0-9.]
。请注意,这不是来自文档,而是我的观察
如果需要传递任意数据,只需使用查询参数即可。为此,在不定义模板参数的情况下设置路由器
export class App {
configureRouter(config, router) {
this.router = router;
config.title = 'Aurelia';
config.map([
{ route: ['', 'home'], name: 'home', moduleId: 'home/index' },
{ route: 'users', name: 'users', moduleId: 'users/index', nav: true },
{ route: 'user', name: 'userDetail', moduleId: 'users/detail' }
]);
}
}
您不必更改任何其他内容(导航、激活中的参数等),这样,在导航时,它将变成查询参数:
router.navigateToRoute('userDetail', { id: '#user123' });
这将导致url:
http://myserver/#user?id=%23user123
这似乎是路由器中记录在案的错误。请参阅,这似乎是路由器中记录的错误。看,这是一个很好的选择。然而,我们的应用程序在userDetail下有更多的子路由。我想我可以对id进行base64编码。这将解决问题。这并不重要,如果routeuser
有自己的子路由器,则该参数将添加到查询中。缺点是它位于URL的末尾。我知道,遵循层次结构更容易理解:user/myUser/childroute
vs.user/childroute?userId=myUser
,这是一个很好的选择。然而,我们的应用程序在userDetail下有更多的子路由。我想我可以对id进行base64编码。这将解决问题。这并不重要,如果routeuser
有自己的子路由器,则该参数将添加到查询中。缺点是它位于URL的末尾。我知道,遵循层次结构更容易理解:user/myUser/childroute
vs.user/childroute?userId=myUser