Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angular 2检查要重定向的本地存储_Javascript_Angularjs - Fatal编程技术网

Javascript angular 2检查要重定向的本地存储

Javascript angular 2检查要重定向的本地存储,javascript,angularjs,Javascript,Angularjs,当用户强制转到像/dashboard这样的链接时,试图重定向用户,它应该检查localStorage是否为空,然后返回主页 如果不在函数中,似乎无法执行var checkStorage,我会执行函数,但不确定如何自动启动它 猜测初始化函数是ngOnInit,类似于angular 1中的init(){} 导出类仪表板组件{ 构造函数(专用路由器:路由器){} var checkStorage=localStorage.getItem('username'); if(checkStorage=nu

当用户强制转到像/dashboard这样的链接时,试图重定向用户,它应该检查localStorage是否为空,然后返回主页

如果不在函数中,似乎无法执行var checkStorage,我会执行函数,但不确定如何自动启动它

猜测初始化函数是ngOnInit,类似于angular 1中的init(){}

导出类仪表板组件{
构造函数(专用路由器:路由器){}
var checkStorage=localStorage.getItem('username');
if(checkStorage=null){
this.router.navigate(['/']);
}
logoutAction(){
if(localStorage.getItem('username')!=null){
localStorage.removietem('username');
this.router.navigate(['/']);
} 
}

}
如果您希望在登录前阻止访问,则该方式会显示:

让后端为我们工作

我不确定您使用的是什么后端,但我记得当我还是一名PHP开发人员时,我们在CodeIgniter框架中有一个函数,在没有cookie时重定向

如果您想使用Angular 2限制这一点(还不用于生产,请记住!),您的代码看起来不错,但我发现了一个错误:

var checkStorage = localStorage.getItem('username');
if(checkStorage == null) {
    this.router.navigate(['/']);
}
使用双等号进行比较

如果您想在init上执行它,我想这可以帮助您


祝你好运和快乐

你是在要求一个角度2的方法来表示
ngInit
?是的,我想,就像在角度1中有init(){}然后是init();在控制器的底部初始化函数。那么,是的,我怎样才能对函数进行同样的初始化。而且。。。加载事件怎么样?还没有使用任何后端,只是全部虚拟。我将设置一个cookie,但只是玩localStorage atm。如果我将代码包装到一个函数中,我设法检查了localStorage,所以我尝试了ngOnInit(),它工作得很好。但是如果其他人知道正确的方法,那么请分享。如果有效,那就是正确的方法。Angular有很多定义“正确方式”的样式指南,只需选择您喜欢的样式即可。托德的座右铭是一个很好的起点。查看我的原始帖子,我编辑了它,并使用ngOnInit包含了我的答案。是的,我知道如果它有效的话,它也会有效的,但我正在努力找到一种更好/更有效的方法。将检查托德的座右铭。