我有一个角度的应用程序,应该能够创建新的路线取决于用户。假设用户'johndoe‘注册了,那么应用程序应该创建一个路由:domain/johndoe
。
当然,应该向/johndoe
路由提供有关特定用户的一些信息(如姓名、图像等)。
我使用谷歌云托管和Firestore作为后端解决方案,到目前为止,我的进展是将Router
注入到我的AppComponent
构造函数中,然后在router.config
上使用unshift
函数。这是可行的,但我必须将所有新的路由(“用户”)存储到我的数据库中的一个单独的文件中,然后每当有人导航到一个私人的机器(例如domain/johndoe
)时查询数据库。
有没有一种漂亮且更易于维护的解决方案,可以考虑到我的后端配置?
发布于 2019-10-29 02:06:48
您可以将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 = params.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
https://stackoverflow.com/questions/58595593
复制相似问题