我有一个anuglar 9应用程序,我正在使用Material。我有两个不同的模板:移动版和桌面版。
因此,通过路由,它知道必须加载切换模板:移动模板或桌面模板。
看起来是这样的:
app.component.ts
constructor(
public oidcSecurityService: OidcSecurityService,
private router: Router,
public platform: Platform,
private route: ActivatedRoute
) {
if (platform.BLINK === true && platform.ANDROID === true) {
this.router.navigate(['mobile'], { relativeTo: this.route });
} else if (platform.BLINK === true && platform.ANDROID === false) {
this.router.navigate(['desktop'], { relativeTo: this.route });
}
}
但现在的问题是,我有一个这样的路由器:
const routes: Routes = [
{
path: 'hello',
/* pathMatch: 'full', */
component: DesktopDashboardComponent,
},
{
path: 'test-desktop',
component: TestDesktopComponent
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class DesktopRoutingModule {}
我的app-routing.module.ts看起来是这样的:
const routes: Routes = [
{
path: 'mobile', loadChildren: () =>
import('../app/mobile-dashboard/mobile-dashboard.module').then(m => m.MobileDashboardModule)
},
{
path: 'desktop', loadChildren: () =>
import('./desktop-dashboard/desktop-dashboard.module').then(m => m.DesktopDashboardModule),
},
{
path: 'autologin',
component: AutoLoginComponent
}
];
但是,如果我想手动导航到这个网址:http://localhost:4200/desktop/test-桌面不起作用。它可以追溯到:http://localhost:4200/desktop
但如果我评论一下:
if (platform.BLINK === true && platform.ANDROID === true) {
this.router.navigate(['mobile'], { relativeTo: this.route });
} else if (platform.BLINK === true && platform.ANDROID === false) {
this.router.navigate(['desktop'], { relativeTo: this.route });
}
我可以转到网址:
http://localhost:4200/desktop/test-desktop
当然,移动模板已经不起作用了。如果我对此发表评论。
那么,这方面的工作是什么呢?
谢谢
let isMobile = false;
if (platform.iOS || platform.ANDROID) {
// mobile
isMobile = true;
}