【问题标题】:Angular ngIf router has /id ( /a dynamic number )Angular ngIf 路由器有 /id(/a 动态数字)
【发布时间】:2019-11-29 14:51:28
【问题描述】:

我在 main.ts 中创建了这个,它获取了路由 url:

router: string;

constructor(private _router: Router) { 
    this.router = _router.url; 
}

这很好用。然后在main.html中:

<app-main-menu *ngIf="router == '/'"></app-main-menu>
<app-item-list *ngIf="router == '/list'"></app-item-list>

<app-item-info *ngIf="router == '/:id'"></app-item-info> <!-- THIS DOES NOT WORK -->

当路线是 /2/35(或任何数字)时,我无法让 app-item-info ngIf 工作。

我的问题是,当我总是有一个带有动态数字“345”的字符串“/”时,如何将 *ngIf 设置为显示(true)?

示例: 当 URL(路由为 ):localhost:4200/2 时,ngIf 应显示 app-item-info。

编辑:我不能使用&lt;router-outlet&gt;,因为我将它用于不同的事情。显示页面。

【问题讨论】:

标签: angular


【解决方案1】:

我推荐使用&lt;router-outlet&gt; 来实现这个功能。查看有关路由的官方 Angular 文档: https://angular.io/guide/router

现场示例:https://stackblitz.com/angular/aqqyljyojye

【讨论】:

  • 我知道这一点。但我正在将路由器插座用于其他用途。我必须这样做。
  • 那么请使用此信息更新您的帖子。
【解决方案2】:

这对你有帮助吗?

<app-item-info *ngIf="isItemInfoRoute(router)"></app-item-info>

在.ts中

isItemInfoRoute(router: string) {
   return router.search(/^\/\d+/) > -1
}

【讨论】:

    猜你喜欢
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 2018-06-29
    • 2020-08-06
    • 2018-04-25
    • 1970-01-01
    相关资源
    最近更新 更多