路由器插座的正确使用角度

时间:2018-10-09 13:38:51

标签: angular router-outlet

我什么时候应该使用路由器插座?显然我的app.component中有1个,但是还有哪些其他用例?

在我的用户组件SUM(IF [FTR] = 'AWins' OR [FTR] = 'Hwins' THEN 1 END)/COUNTD([game-date-id]) 中放置1以显示帖子列表(user/:id)似乎是一个好主意,但是似乎没有办法将(user/:id/posts)数据注入到我认为这是个坏主意。

我很想听听对此的一些想法。

编辑:我的这篇文章特别是关于路由器插座如何无法直接接收数据,而我认为这有悖于它自己的目的。

1 个答案:

答案 0 :(得分:1)

<router-outlet></router-outlet>本质上是从@angular/router公开的指令。在我们的Routes配置中,我们指定pathcomponent,当到达该路径时,预计将加载它们。

但是Angular不知道应该在哪里注入该Component模板。我们通过指定<router-outlet></router-outlet>来告诉Angular。

本质上,它充当了应该通过路由加载的组件的容器区域。

您将其放置在哪里完全取决于所使用的路由配置的类型。

对于子路由,如果要指定将基于路由再次加载的组件,则也可以在该父路由组件中指定<router-outlet></router-outlet>

看看这个Routes的配置,例如:

const appRoutes: Routes = [
  { path: 'home', component: HomeComponent },
  { path: 'about', component: AboutComponent },
  { path: 'blog', component: BlogComponent, canActivate: [ ActivateGuard ] },
  { path: 'messages', component: MessageListComponent, canDeactivate: [ DeactivateGuard ] },
  { path: 'parent', component: ParentComponent },
  { path: 'bd', component: BuiltInDirectivesComponent },
  { path: 'cd', component: CustomDirectivesComponent },
  { path: 'new-user', component: NewUserComponent },
  { path: 'new-user-reactive', component: NewUserReactiveComponent },
  { 
    path: 'users', 
    component: UsersComponent,
    children: [
      { path: ':userId', component: UserDetailsComponent },
      { path: '', component: PlaceholderComponent }
    ]
  },
  { path: '**', redirectTo: '/home', pathMatch: 'full' }
];

现在说,如果我想显示UsersComponent的用户列表,也要在左侧显示。在右侧,我需要从列表中显示所选用户的详细信息。

在这种情况下,<router-outlet></router-outlet>模板中将有一个AppComponent。然后,<router-outlet></router-outlet>模板中还会有另一个UsersComponent。希望现在清楚了。