angular 2检查localStorage重定向

时间:2016-07-07 10:40:50

标签: javascript angularjs

当用户强制转到像/ 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(['']);
        }
    }




1 个答案:

答案 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

祝你好运,编码愉快!