Angular v6 - Ленивые загруженные маршруты не загружаются - PullRequest
0 голосов
/ 27 мая 2018

ОБНОВЛЕНИЕ

Кажется, что это не должно было работать в Angular 5 - но по какой-то причине так и было.Значение loadChildren должно быть простой строкой или LoadChildrenCallback .Я пробовал обратный вызов - с Observable - но, как указывают многие проблемы, это неизменно ломает ленивую загрузку.Просто перейдем с параметром простой строки


После обновления до Angular 6 с CLI v6.У меня ленивый загруженный маршрут, настроенный следующим образом

import { BLOG_CONFIG } from './BLOG_CONFIG';

const blogPath = BLOG_CONFIG.blogPath;
const categoriesPath = BLOG_CONFIG.categoriesPath;
const categoriesModulePath = BLOG_CONFIG.categoriesModulePath;

const routes: Routes = [
   { path: `${blogPath}/${categoriesPath}`, loadChildren: categoriesModulePath }
];

Конфигурация блога:

export const BLOG_CONFIG = {
  blogPath: 'blog',
  postsPath: 'post',
  categoriesPath: 'categories',
  categoriesModulePath: './modules/categories/categories.module#CategoriesModule',
}

При переходе к маршруту blog/categories возникает консольная ошибка:

ERROR Error: Uncaught (in promise): Error: Cannot find module "./modules/categories/categories.module.ngfactory".
Error: Cannot find module "./modules/categories/categories.module.ngfactory".

Если я изменю маршрут, чтобы loadChildren напрямую использовал строку, она работает нормально!

const routes: Routes = [
  { path: `${blogPath}/${categoriesPath}`, loadChildren: './modules/categories/categories.module#CategoriesModule' }
];

Этого не происходило в Angular 5Я что-то упустил здесь??

Примечание: когда он работает со строкой, я получаю вывод CLI для ng serve --aot

chunk {modules-categories-categories-module-ngfactory} modules-categories-categories-module-ngfactory.js, modules-categories-categories-module-ngfactory.js.map (modules-categories-categories-module-ngfactory) 70.5 kB  [rendered]

Я думаю, что этоwebpack может быть проблема с чтением объекта BlogConfig, но не уверен

1 Ответ

0 голосов
/ 27 мая 2018

Попробуйте

loadChildren: BLOG_CONFIG.categoriesModulePath 
...