用户登录后如何更改从组件到另一组件的默认路由?

时间:2018-11-27 16:57:20

标签: angular typescript angular-ui-router angular2-routing angular-routing

我创建了到仪表板组件的默认路由,就像这样

{ path: '', redirectTo: '/dashboard', pathMatch: 'full' }

并且我需要在登录后将其更改为home组件,所以我需要知道是否有可能处理此问题的运行时间。

2 个答案:

答案 0 :(得分:0)

成功登录后,使用路由器进入仪表板,例如:您正在将this.user传递到包含用户名和密码的身份验证服务。身份验证服务为您提供结果,如果成功,则进行重定向。

this.service.authenticate(this.user).subscribe(result => {
     this.router.navigateByUrl('/dashboard');
}

您需要添加逻辑以检查result是否成功,然后将其重定向,但是要处理登录错误(如果存在)。您需要在这里使用简单的if / else逻辑。 您需要将Router添加到构造函数并将其导入: protected router: Router

答案 1 :(得分:0)

//在“登录”组件中,您必须导入路由器

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';
import { Router } from '@angular/router';

//Include Router in constructor

constructor(private router: Router, private FormBuilder: FormBuilder) {
  }

//after login api success you can directly use code like this


return this.Service.post(this.url + 'authentication/userLogin', this.user).then((response) => {
    if (response.status == 200)
    {
//You can give any component and file path in router.navigate
this.router.navigate(['/home/dashboard']);
}