根据网址差异修改组件视图

时间:2018-12-25 11:47:35

标签: angular angular-ui-router angular7

基本上,我希望只有一个视图可以列出我的角度应用程序中的博客文章。因此,要获得所有博客,近期博客和类别博客的列表,我将只使用一个组件。

'XCTest/XCTest.h' file not found
Cannot find interface declaration for 'XCTestCase', superclass of 'MotwinTests'

以上两个url(第一个和第二个)将显示不同的列表,但在同一组件上。

我的路由器看起来像这样:

    http://localhost:4200/blog/category/technology
    http://localhost:4200/blog/recent
    http://localhost:4200/blog/post/1

所以我该如何对const routes: Routes = [ {path: 'blog', component: BlogpostListComponent}, {path: 'blog/post/:id', component: BlogpostDetailComponent}, {path: 'blog/category/:name', component: BlogpostListComponent}, ]; 进行更改,因为到目前为止,由于我不知道如何根据url进行区分,因此最近的所有内容和基于类别的内容都显示相同的内容。如果我能弄清楚如何理解URL模式的差异,那么我可以利用BlogpostListComponent并在同一组件的不同URL上显示不同的内容。

1 个答案:

答案 0 :(得分:1)

在组件中插入Router,然后使用它来获取当前URL:

import { Router } from '@angular/router';

currentRoute: string;
category: boolean;

constructor(
  private router: Router
) { }

ngOnInit() {
    this.currentRoute = this.router.url;

    if (this.currentRoute.includes('category') {
        this.category = true;
    } else {
        this.category = false;
    }
}

然后在您的模板中:

<div *ngIf="category">
    This is category mode.
</div>

<div *ngIf="!category">
    This is regular mode.
</div>