Angular 7-8条动态路线

时间:2019-10-28 17:21:43

标签: angular dynamic routing angular7 angular8

我有一个Angular应用,该应用应该能够根据用户创建新路线。假设用户'johndoe'注册,则该应用应创建一个路由:domain / johndoe。 当然/ johndoe路由应该提供有关特定用户的一些信息(例如名称,图像等)。 我使用Google Cloud Hosting和Firestore作为后端解决方案,到目前为止,我的进展是将Router注入到我的AppComponent构造函数中,然后在router.config上使用“ unshift”功能。这种工作有效,但是我必须将所有新路由(``用户'')存储到我的数据库中的单独文件中,然后每当有人导航到私有记号(例如domain / johndoe)时查询数据库... 我的问题是-是否有一个美观且易于维护的解决方案,其中考虑了我的后端配置。 如果我的问题听起来不太清楚,请不要判断我,只是问一下,在需要时我会做更多解释。

1 个答案:

答案 0 :(得分:1)

您可以将userName作为路由参数传递。在路线数组

{ path: 'domain/:username', component: UserDetailsComponent }

在HTML中:

<a [routerLink]="['/domain', usernameVar]">

当某人单击链接时,它将路由到UserDetailsComponent。在组件中, 可以读取用户名。

username: string;
constructor(private route: ActivatedRoute) {}

ngOnInit() {
    this.route.params.subscribe((params: Params) => {
        this.username = param.username; // same as :username in route
    });
    // using username call the BE api and fetch data
}

有关路线参数的更多信息,请转到https://angular.io/guide/router#route-parameters

如果要基于授权路由到页面,请使用authGuards。 https://angular.io/guide/router#canactivate-requiring-authentication

希望这对您有帮助...