【问题标题】:How to redirect user to different urls based on verified or not verified如何根据已验证或未验证将用户重定向到不同的网址
【发布时间】:2019-04-01 11:07:52
【问题描述】:

我想在验证用户时在 url 链接中显示用户名,否则我只想显示用户 ID

我在路由 modules.ts 中有这个路由 {
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

有可能吗?

我们将非常感谢您的帮助。

【问题讨论】:

    标签: angular url parameters


    【解决方案1】:

    将您的路线配置设置为

    {  
        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']);
        )
    }
    

    编辑

    如果你的路由可以和不可以有用户名,那么设置两个路由配置,一个带有用户名参数,一个没有它。

    [
        {  
            path: 'user-survey/:user_id/:user_name',
            canActivate : [AuthWebGuard],
            component: SurveyComponent
        }
    
        {  
            path: 'user-survey/:user_id',
            canActivate : [AuthWebGuard],
            component: SurveyComponent
        }
    }
    

    【讨论】:

    • 让我试试
    • 我应该这样写routerLink="/user-survey/{{survey.user_id._id}}/{{name}}"还是routerLink="/user-survey/{{survey.user_id._id}}/{{survey.user_id.name}}"
    • @KuldeepKoranga 任何拥有username 值的东西
    • 另外,您可能更喜欢以下表示法:&lt;a [routerLink]="['/user-survey', survey.user_id.id, theUserName]" [queryParams]="{type: 5}"&gt; ... &lt;/a&gt; 您会得到 1) [routerLink] 和 [queryParams] 输入之间的一致性以及 2) 更好地处理相对路由(在这里可能没用但仍然)。
    • 好的,那么这个是正确的,因为如果我要获取用户 ID,例如:survey.user_id.id 然后名称:survey.user_id.namerouterLink="/user-survey/{{survey.user_id._id}}/{{survey.user_id.name}}
    猜你喜欢
    • 2017-08-11
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2012-01-29
    • 2019-02-12
    • 2011-11-08
    相关资源
    最近更新 更多