User interface 能够使用Aurelia创建多选项卡界面,同时打开多个视图

User interface 能够使用Aurelia创建多选项卡界面,同时打开多个视图,user-interface,tabs,aurelia,User Interface,Tabs,Aurelia,每个选项卡都是一个视图,每个视图都已加载并处于活动状态。当用户单击[x]关闭选项卡时,视图将被销毁并删除。此外,可以使用不同的变量或id多次加载单个视图。请考虑相同类型的多个文档 视图是通过转到特定管线创建的 这可以通过创建自己的viewmodel、添加视图集合,然后添加组件作为子视图来完成,但这会忽略浏览器历史记录 在阅读之后,似乎实现这一点的唯一方法是创建自己的路由器。虽然我对Aurelia并不陌生,但我没有足够的信心创建自己的路由器 问题是如何维护浏览器历史记录并拥有多个活动视图 在gi

每个选项卡都是一个视图,每个视图都已加载并处于活动状态。当用户单击[x]关闭选项卡时,视图将被销毁并删除。此外,可以使用不同的变量或id多次加载单个视图。请考虑相同类型的多个文档

视图是通过转到特定管线创建的

这可以通过创建自己的viewmodel、添加视图集合,然后添加组件作为子视图来完成,但这会忽略浏览器历史记录

在阅读之后,似乎实现这一点的唯一方法是创建自己的路由器。虽然我对Aurelia并不陌生,但我没有足够的信心创建自己的路由器

问题是如何维护浏览器历史记录并拥有多个活动视图

在gitter上的“Patrick Walters@PWKad”的帮助下,我得以整理出一份概念证明

我已将示例上载到github。这里是链接

其想法是在app.js中创建路由,该路由将处理您将创建的所有选项卡。所有管线都需要指向一个将承载、组合和管理它们的viewmodel

您可以根据需要添加更多路由或通配符。如果选项卡很复杂,也可以为参数创建哈希

我还没有弄清楚如何从浏览器历史记录中删除项目

希望这能帮助别人做同样的事情

导出类应用程序{
配置路由器(配置,路由器){
config.map([
{route:['',shell/:section/:viewmodel/:id'],名称:'shell',moduleId:'shell',导航:false,标题:'shell'}
]);
this.router=路由器;
}
}
在gitter上的“Patrick Walters@PWKad”的帮助下,我得以整理出一份概念证明

我已将示例上载到github。这里是链接

其想法是在app.js中创建路由,该路由将处理您将创建的所有选项卡。所有管线都需要指向一个将承载、组合和管理它们的viewmodel

您可以根据需要添加更多路由或通配符。如果选项卡很复杂,也可以为参数创建哈希

我还没有弄清楚如何从浏览器历史记录中删除项目

希望这能帮助别人做同样的事情

导出类应用程序{
配置路由器(配置,路由器){
config.map([
{route:['',shell/:section/:viewmodel/:id'],名称:'shell',moduleId:'shell',导航:false,标题:'shell'}
]);
this.router=路由器;
}

}
我不确定这里的实际问题是什么。1。你需要儿童路由器。2.标签应该放在主VM 3的模板中。标签内容应该放在里面,问题是怎么做。我会试着想出一个更好的方法来问这个问题。在gitter的帮助下,我终于找到了一个可行的解决方案。当我有一个工作样本时,我会发布它。我看到的问题是,你可以删除标签,考虑你已经删除它,然后导航回去,你将切换到先前的路由,你也应该显示删除的标签,这对于UI是不寻常的。有没有办法删除浏览器历史记录项?我不确定实际问题是什么。1。你需要儿童路由器。2.标签应该放在主VM 3的模板中。标签内容应该放在里面,问题是怎么做。我会试着想出一个更好的方法来问这个问题。在gitter的帮助下,我终于找到了一个可行的解决方案。当我有一个工作样本时,我会发布它。我看到这里的问题是,你可以删除标签,考虑你已经删除它,然后导航回去,你将切换到先前的路由,你也应该显示删除的标签,这对于UI来说是不寻常的事情。对了,有没有办法删除浏览器历史项目?