首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动导航到* in中的第一个routerLink?

自动导航到* in中的第一个routerLink?
EN

Stack Overflow用户
提问于 2019-04-30 21:54:14
回答 2查看 314关注 0票数 2

我有一个包含各种项目(不同组件)的"feed“。每一个都有一个routerLink,它可以改变提要旁边的路由器插座中的视图。当提要初始化时,我希望将视图导航到提要中的第一个项目。

代码语言:javascript
复制
<div class="item-container">
  <ng-container
        *ngFor="let feedItem of items"
        [ngSwitch]="feedItem.type"
      >
        <component-1
          [routerLink]="['type1', feedItem.item.id]"
          [routerLinkActive]="'active'"
          ...
          *ngSwitchCase="FeedItemType.Type1"
        ></component-1>
        <component-2
          [routerLink]="['type2', feedItem.item.id]"
          [routerLinkActive]="'active'"
          ...
          *ngSwitchCase="FeedItemType.Type2"
        ></component-2>
  </ng-container>
</div>
EN

回答 2

Stack Overflow用户

发布于 2019-05-01 02:28:56

这里有一个更好的方法。定义管线时,可以为父零部件指定默认管线。

代码语言:javascript
复制
const routes: Routes = [
    {
        path: 'parent',
        component: ParentComponent,
        children: [
            { path: '', redirectTo: 'type1', pathMatch: 'full' },   // <--- default child route
            { path: 'type1', component: Type1Component },
            { path: 'type2', component: Type2Component },
        ],
    },
];

因此,当您导航到/parent时,它会自动重定向到/parent/type1

票数 1
EN

Stack Overflow用户

发布于 2019-04-30 22:30:43

感谢@zyz,我用以下方法解决了这个问题:

代码语言:javascript
复制
@ViewChildren(RouterLink) feedItems: QueryList<RouterLink>;

...

ngAfterViewInit(): void {
  this.feedItems.changes.pipe(take(1)).subscribe(items => {
    if (items.first) {
      this.router.navigateByUrl(items.first.urlTree);
    }
  });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55922501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档