有关主从体系结构中路由的问题

时间:2019-08-06 16:20:56

标签: angular

我遇到的问题是,单击主应用程序导航栏路由器链接会导致清除子路由器出口。除非我没有要重新导航到子路线的钩子,否则这不是问题。

应用程序的体系结构是这样的:

app-component.html:

<navbar> // has router-links to parent components to main router-outlet
<router-outlet>

master-component.html
<list> //contains child route-links
<router-outlet>

app-routing:

  { path: 'master', 
    component: MasterComponent,
    children: [
      {path: ':id', 
       component: MasterDetailDetailComponent, 
       resolve: {data: DataResolver}
      }
    ]
  },

* The DataResolver uses a webAPI to get some data.

当我单击主列表上的链接时,效果很好,子路由器出口正确,一切都很好。

但是,当我单击应用程序级别的导航栏“主链接”时,它会清除子路由器出口。子组件的ngOnDestroy()被命中,但父路由未激活。因此,我剩下了主列表和一个清除的详细信息区域。如果我再次单击列表项链接,它将再次很好地填充子路由器出口。

它的确看起来像个挑剔的东西,但是当我单击顶级主组件路径链接时,我希望它自动导航到列表中的第一项。目前,我是在ngOnInit()中进行此操作的,当我第一次进行路由时,它运行良好,但是在这种情况下再也不会调用该方法,因为未禁用父路由。

总结一下: 好像我在主路由已被激活时单击它,便会清除该组件的路由器出口,而不会重新激活路由本身。也许是设计使然?

0 个答案:

没有答案