当用户强制转到像/ dashboard这样的链接时,尝试重定向用户,如果该用户基本上是空的话,应该检查localStorage。
似乎没有在函数中执行var checkStorage,我会做一个函数,但不知道如何自动启动它。
猜测初始化函数是ngOnInit,类似于角度1中的init(){}?
export class DashboardComponent {
constructor(private router: Router) {}
var checkStorage = localStorage.getItem('username');
if(checkStorage = null) {
this.router.navigate(['/']);
}
logoutAction (){
if(localStorage.getItem('username') != null){
localStorage.removeItem('username');
this.router.navigate(['/']);
}
}
}

我发现答案,但如果有更好的方法请分享。
ngOnInit () {
this.checkStorage();
}
checkStorage() {
var checkStorage = localStorage.getItem('username');
if(!checkStorage) {
this.router.navigate(['']);
}
}

答案 0 :(得分:0)
如果您想在登录前进行阻止访问,Angular方式会说:
让后端为我们工作。
我不确定你使用的后端是什么,但我记得当我是一名PHP开发人员时,我们在CodeIgniter Framework中有一个函数,当没有cookie时重定向。
如果你想使用Angular 2来限制它(不是为了生产,请记住!),你的代码似乎很好,但我发现了一个错误:
var checkStorage = localStorage.getItem('username');
if(checkStorage == null) {
this.router.navigate(['/']);
}
使用双等于比较。
如果你想在init上执行它,我想这可以帮到你。
Converting Angular 1 to Angular 2 ngInit function
祝你好运,编码愉快!