Что такое ошибка Angular Routing для мобильных и настольных ПК? - PullRequest
0 голосов
/ 14 декабря 2018

Я хочу достичь того же проекта, но с другой маршрутизацией для моего веб-приложения в отношении мобильной / настольной версии, поэтому я могу определить некоторые представления для мобильных устройств и другие для настольных компьютеров, используя один и тот же компонент, если они будут определены.

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

У вас, ребята, есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...