Angular2 - 我使用router.navigate - 当我改变路线时它会跳回到原始路线?

时间:2015-12-13 16:09:33

标签: javascript angular typescript angular-ui-router

Angular2 - 我使用router.navigate - 当我改变路线时它会跳回到原始路线?

我的应用运行正常。 但是在登录时我想将用户重定向到登录的仪表板。 但是当它访问仪表板视图时,它会再次返回登录视图。

到目前为止,这是我的代码:

  this.router.navigate('/Dashboard'); 

使用路由器链接等所有路由都可以正常工作但我需要login.ts文件才能在登录成功时进行重定向。

这是我的Login.is文件:

 import {Component, View, CORE_DIRECTIVES, FORM_DIRECTIVES, NgIf} from 'angular2/angular2';
 import {Router, RouterLink, RouterOutlet} from 'angular2/router';
 import {AuthService} from '../../services/authService';
 import {User} from '../../models/user';
 import {Dashboard} from '../home/home';

 @Component({
   selector: 'Login',  
   providers: [AuthService, User]
 })

 @View({
   templateUrl: '/src/app/components/login/login.html',
   directives: [RouterOutlet, RouterLink, CORE_DIRECTIVES, FORM_DIRECTIVES, NgIf],
 })

 export class Login {
   authService:AuthService;
   user: User;
   error: string = null;
   router: Router;

   constructor(router: Router, authService: AuthService, user: User){   
       this.authService = authService;
       this.user = user;
       this.router = router;
   }

   logIn = () => {  
        this.authService.logIn(this.user).then((response) => {
             if(response === false)
                this.error = "Incorrect login details";
             else
                this.router.navigate(['/Dashboard']);
        });       
   }

 }

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。

解决方案是:app.ts中路由配置的命名问题。我的名字与路线不匹配。