我正在构建一个Ionic / Angular应用程序并在路由方面苦苦挣扎。
我没有使用任何身份验证保护措施,而是选择了将用户重定向到各个页面的全局服务,例如,我检查用户是否已登录以及是否被定向到{{1 }}页面,
如果用户已登录但未添加名字,则将他们定向到./authentication
;同样,如果用户具有完整的个人资料,则可以将其定向到主主屏幕(即“离子”标签页)在./authentication/firstname
。
这一切都使用以下路由工作,但是,如果用户通过了身份验证,它将自动将其定向到./tabs/home
页,这当然是由路由指定的意义,但这将始终加载/tab/home
即使应该将它们定向到另一个页面来执行配置文件字段更新,它也会通过在应有的状态初始化其他服务来引起一些问题。
我尝试了许多不同的方法,但是通常它以/tab/home
路由结尾而找不到或未初始化。有没有一种方法可以延迟加载2个模块,例如启动应用程序上的身份验证页面和选项卡页面?还是还有其他我还不知道的真正聪明的方法来处理这种情况?
// main app.routing.ts
/tabs/home
authentication.routing.ts就像这样:
const routes: Routes = [{
path: 'authentication',
loadChildren: "./authentication.module#AuthenticationPageModule"
},{
path: '',
redirectTo: '/tabs/home',
pathMatch: 'full'
},{
path: '',
loadChildren: "./tabs/tabs.module#TabsPageModule" // tabs get loaded in here
}
];
和选项卡路由在./tabs/tabs.routing.ts
中定义const routes: Routes = [
{
path: '',
component: AuthenticationPage,
}, {
path: 'login',
children: [{ path: '', loadChildren: './login/login.module#LoginPageModule' }]
}, {
path: 'register',
children: [{ path: '', loadChildren: './registration/registration.module#RegistrationPageModule' }]
}
];
我想问题是我试图在标签正式加载之前加载这些标签,但是如何准备这样的页面或如何使用另一个全局服务加载这些标签,该服务将用户发送到需要通过路线去的地方< / p>