#在参数化管线中,断开Aurelia管线

#在参数化管线中,断开Aurelia管线,aurelia,Aurelia,我们有一个示例应用程序,路由器配置定义如下。用户详细信息路由中的“id”参数的值中可以有#,例如/users/#abc。我们可以从“id”为#abc的用户视图导航到用户详细信息视图,没有问题。但是,在刷新详细信息页面时,它会返回到用户视图。有没有办法转义字符“#” 由于没有对模板参数进行编码/解码,因此它们的限制性很大。基本上,这意味着[a-zA-Z0-9.]。请注意,这不是来自文档,而是我的观察 如果需要传递任意数据,只需使用查询参数即可。为此,在不定义模板参数的情况下设置路由器 export

我们有一个示例应用程序,路由器配置定义如下。用户详细信息路由中的“id”参数的值中可以有#,例如/users/#abc。我们可以从“id”为#abc的用户视图导航到用户详细信息视图,没有问题。但是,在刷新详细信息页面时,它会返回到用户视图。有没有办法转义字符“#”


由于没有对模板参数进行编码/解码,因此它们的限制性很大。基本上,这意味着
[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编码。这将解决问题。这并不重要,如果route
user
有自己的子路由器,则该参数将添加到查询中。缺点是它位于URL的末尾。我知道,遵循层次结构更容易理解:
user/myUser/childroute
vs.
user/childroute?userId=myUser
,这是一个很好的选择。然而,我们的应用程序在userDetail下有更多的子路由。我想我可以对id进行base64编码。这将解决问题。这并不重要,如果route
user
有自己的子路由器,则该参数将添加到查询中。缺点是它位于URL的末尾。我知道,遵循层次结构更容易理解:
user/myUser/childroute
vs.
user/childroute?userId=myUser