【问题标题】:Angular2 router in one componentAngular2路由器在一个组件中
【发布时间】:2016-06-22 08:48:15
【问题描述】:

我用 /main /item 之类的路由器编写 Angular2 应用程序。 应用程序有很多过滤表/树/组合框。 我想在 /main 页面中打开引导模式窗口(例如调用@component modalFilterWindow)并在此窗口中切换内容,如路由器。

我可以这样做

<first-filter-content ngIf="currentFilter=='first'">
<second-filter-content ngIf="currentFilter=='second'">
....

但它可以变得更漂亮

...modal window
<router-outlet></router-outlet>

通过路由切换modalFilterWindow的内容,不要改变主组件的状态。

所以一个组件必须有自己的路由,不影响父路由和组件。

有可能吗?

【问题讨论】:

  • 您使用的是哪个版本的 Angular 路由器?
  • 辅助路由尚未与新路由器一起使用。
  • 那么,这不可能吗?还是我必须等待 RC3?
  • 在旧的Router中是可能的,但是由于他们正在完全重写Router,看来你必须等待它。

标签: angular angular2-routing


【解决方案1】:

您可以定义路由以在名为 &lt;router-outlet&gt; 中显示组件

路线配置

{path: '/chat', component: ChatCmp, outlet: 'aux'}

命名路由器插座

<router-outlet name="aux">

导航辅助路线

this._router.navigateByUrl("/crisis-center(aux:chat;open=true)");

似乎尚不支持从 routerLink 导航辅助路由

<a [routerLink]="['/team/3(aux:/chat;open=true)']">Test</a>

我还没试过

【讨论】:

  • 另请参阅github.com/angular/angular/issues/9448 了解相关问题和带有辅助路由示例的 Plunker。
  • 我们还需要在路径中添加出口名称吗?这听起来不太好。我应该被允许路由到任何可用路由中的组件
  • 我不明白你的意思。
  • {路径:'/chat',组件:ChatCmp,出口:'aux'}。为什么要在这里指定出口?
  • 您有具体的用例吗?路由是用来配置路由器的。如果您不指定它,它应该如何知道放置组件。如果您不指定插座,则会将其添加到默认插座。
猜你喜欢
  • 1970-01-01
  • 2017-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-11
  • 1970-01-01
  • 2016-09-04
相关资源
最近更新 更多