我想在验证用户身份后在URL链接中显示用户名,否则我只想显示用户ID
我在路由模块中有此路由
{
path: 'user-survey/:user_id/:user_name',
canActivate : [AuthWebGuard],
component: SurveyComponent
},{
path: 'favorite-world-survey',
canActivate : [AuthWebGuard],
component: SurveyComponent
},
这是我的HTML页面,我希望在此页面上创建条件以重定向用户
<span *ngIf="!isUserSurveyList; else other_content">
<a *ngIf="!(this.commonService.authUser()==survey.user_id.email)"
routerLink="/user-survey/{{survey.user_id._id}}/{{survey.user_id.name}}" class="a_link">
<p>
{{ survey.user_id.name }}
<i class="fa fa-check" aria-hidden="true" style="color: green; font-size: 30px;"
*ngIf="survey.user_id.verifystatus"></i>
</p>
</a>
<a *ngIf="(this.commonService.authUser()==survey.user_id.email)" routerLink="/profile"
class="a_link">
<p>
{{ survey.user_id.name }}
<i class="fa fa-check" aria-hidden="true" style=" color: green; font-size: 30px;"
*ngIf="survey.user_id.verifystatus"></i>
</p>
</a>
</span>
http://Address:4200/#/user-survey/5a7d5f351d3a5d4eb21feb02?type=1
有可能吗?
我们将非常感谢您的帮助。
答案 0 :(得分:0)
将路由配置设置为
{
path: 'user-survey/:user_id/:user_name',
canActivate : [AuthWebGuard],
component: SurveyComponent
}
在routerLink中发送用户名和用户ID
[routerLink]="['/user-survey', survey.user_id.id, theUserName]"
在组件中提取用户名,就像提取user_id
例如:
ngOnInit(){
this.route.params.subscribe( params =>
console.log(params['user_name']);
)
}
修改
如果您的路由可以且不能包含用户名,则设置两个路由配置,一个配置有username参数,一个配置不带用户名。
[
{
path: 'user-survey/:user_id/:user_name',
canActivate : [AuthWebGuard],
component: SurveyComponent
}
{
path: 'user-survey/:user_id',
canActivate : [AuthWebGuard],
component: SurveyComponent
}
}