带有参数的多个路由器插座

问题描述

我的应用中有三个路由器插座(主要、左侧和聊天)。我只在小屏幕上显示主要出口,所以我想允许在主屏幕和聊天之间切换。为避免显示两次聊天,请在左侧和聊天出口显示空组件。它适用于路线:

const routes: Routes = [
  {
    path: 'chat',canActivate: [AuthorizationRouteGuard],children: [
      { path: '',loadChildren: './chat/chat.module#ChatModule' },{ path: '',component: EmptyComponent,outlet: 'chat' },outlet: 'left-routing' }
    ]
  },{
    path: '',loadChildren: './user/user.module#UserModule' },loadChildren: './chat/chat.module#ChatModule',loadChildren: './vertical-navbar/vertical-navbar.module#VerticalNavbarModule',outlet: 'left-routing' }]
  },{ path: '**',redirectTo: '',canActivate: [AuthorizationRouteGuard] },];

我还希望能够从主要出口重定向到具有用户 ID 的聊天出口以开始新的对话。它适用于路线:

const routes: Routes = [
  { path: '',loadChildren: './user/user.module#UserModule',outlet: 'left-routing' },{
    path: 'chat',];

然后从具有用户 ID 的主要出口重定向工作,但是当尝试在主要出口中查看聊天本身时,出现错误:“错误:无法激活已激活的出口”。 我使用以下命令从主要重定向到聊天:

this._router.navigate(['',{ outlets: { chat: ['',this.userTodisplay.id ] }}],{ relativeto: null,skipLocationChange: true });

总结一下,我想从主网点重定向用户id的聊天,然后重定向到'/chat'地址,之后聊天出现在主网点,其他网点为空.一个代码片段做一个,另一个做另一个,但我不知道如何将它们结合起来

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...