0
我需要重置我的路由器配置动态 所以我用这个重置路由器的配置不是异步工作 - 角2
//to redirect from AppComponent to LoggedInComponent
//without changing the path
this._router.resetConfig([
{
path: '', component: LoggedInComponent
}
]);
它在直线代码工作正常通过时,我试图像
异步运行//af is AngularFire object
this.af.auth.subscribe(auth=> {
if (auth) {
this._router.resetConfig([
{
path: '', component: LoggedInComponent
}
]);
}
else {
this._router.resetConfig([
{
path: '', component: NotLoggedInComponent
}
]);
}
});
失败 .... 我甚至尝试了无极
const logined = new Promise<Boolean>(
(resolve, reject) => {
this.af.auth.subscribe(auth=> {
if (auth) {
resolve(true);
}
else {
resolve(false);
}
})
}
);
logined.then((res) => {
console.log('Yeyy resolved as' + res);
if (res) {
this._router.resetConfig([
{
path: '', component: LoggedInComponent
}
]);
}
else {
this._router.resetConfig([
{
path: '', component: NotLoggedInComponent
}
]);
});
logined.catch((err) => {
console.log('Yeyy Error');
});
包围它
但它不工作(没有错误,但路由器的配置没有变化)
我这样做的唯一原因是为了维护所有喜欢
www.facebook.com
同域不是一样要为登录和新用户,但URL不会改变
我不希望它成为像
this._router.resetConfig([
{
path: 'loggedin', component: LoggedInComponent
},
{
path: 'notloggedin', component: NotLoggedInComponent
}
]);
请帮助我。我是Angular2中的一个真正的noob