Я хочу достичь того же проекта, но с другой маршрутизацией для моего веб-приложения в отношении мобильной / настольной версии, поэтому я могу определить некоторые представления для мобильных устройств и другие для настольных компьютеров, используя один и тот же компонент, если они будут определены.
Iиспользуйте Angular 6.1.0.
Я попробовал этот подход, который прекрасно компилируется, но не работает (оттуда Маршрутизация Angular 2 для главной страницы, реагирующей на детализацию )
const appDesktopRoutes: Routes = [
{ path: 'home', component: HomeDesktopComponent},
{ path: '**', component: HomeDesktopComponent }
];
const appMobileRoutes: Routes = [
{ path: 'home', component: HomeComponent },
{ path: 'planning', component: PlanningComponent },
{ path: '**', component: HomeComponent }
];
@NgModule({
imports: [
RouterModule.forRoot(
appDesktopRoutes,
{ preloadingStrategy: PreloadAllModules}
)
],
declarations: [],
exports: [
RouterModule
]
})
export class AppRoutingModule {
MOBILE_WIDTH = 500;
constructor(router: Router, resolutionService: AppResolutionService) {
// subscribe to resolution service to get current width
resolutionService.width.subscribe(width => {
console.warn("resolution : ", width);
if (width < this.MOBILE_WIDTH) {
console.warn("going Mobile");
router.resetConfig(appMobileRoutes);
} else {
console.warn("going Desktop");
router.resetConfig(appDesktopRoutes);
}
});
}
}
А также, чтобы веб-приложение работало на Chrome.Таким образом, определение ширины работает хорошо, но если я изменяю ширину с хрома, обнаружение выполнено, но тогда в консоли появляется ошибка:
ERROR Error: Uncaught (in promise): Error: No component factory found for
HomeComponent. Did you add it to @NgModule.entryComponents?
Но если я изменю строку RouterModule.forRoot( appDesktopRoutes,
на RouterModule.forRoot( appMobileRoutes,
тогда компонент работает нормально.Мне кажется, что компонент не загружен "полностью", событие, если я делаю импорт.Или возможно resetConfig глючит?
Руководства, которые я использовал, взяты из 2017 года ... может быть, слишком старые?https://medium.com/@golan.yosi/creating-angular-webapp-for-multiple-views-and-screen-sizes-50fe8a83c433
У вас, ребята, есть идеи?