2016-07-07 50 views
1

我是新来的角2,并试图创建一个登录应用程序,我管理好但是在检查用户/通过然后重定向到仪表板它重新加载应用程序。有没有办法不使用router.navigate刷新页面?angular 2重定向使用router.navigate

编辑:它首先重定向到仪表板,然后重新载入页面,然后再次重定向到仪表板。

import { Component } from '@angular/core'; 
 
import { Router, ROUTER_DIRECTIVES } from '@angular/router'; 
 

 
@Component({ 
 
    selector: 'login', 
 
    templateUrl: './app/login/views/login.html', 
 
}) 
 

 
export class LoginComponent { 
 
    constructor(public router: Router) {} 
 
    data = { 
 
     username: "", 
 
     password: "", 
 
    }; 
 
    loginAction(){ 
 
     if(this.data.username=="user1" && this.data.password=="pass1"){ 
 
      console.log('do redirect to dashboard'); 
 
      this.router.navigate(['dashboard']); 
 
     } else { 
 
      console.log('Something is wrong with your user/password.'); 
 
     } 
 
    } 
 
}

回答

1

this.router.navigate([ '/仪表板']);

+0

耶也是这样做,仍然刷新页面,这也应该是一个评论而不是答案。 – nCore

+0

嗯也许这就是答案。关于路由的另一个问题,是否有办法限制用户从做/仪表板?如果他们强迫去这条路线而不检查localStorage,它应该重定向它们。通常它会像if(localStorage.getItem).. – nCore

0

你尝试relativeTo

router.navigate(['dashboard'], {relativeTo: route}); 
+0

但是,这是给我一个错误编译,疲劳注入路由在const和导入,但在{relativeTo:route}路由是找不到名称。在我原来的帖子中看到我的编辑。 – nCore