Ionic Angular Lazy通过服务加载路线和导航

时间:2019-11-04 16:19:34

标签: angular ionic-framework angular-ui-router ionic4

我正在构建一个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>

0 个答案:

没有答案