0

更新

似乎这不应该在 Angular 5 中工作 - 但由于某种原因它是。该loadChildren值必须是纯字符串或LoadChildrenCallback。我已经尝试过回调 - 使用 Observable - 但许多问题指出这总是会破坏延迟加载。只需使用纯字符串选项


使用 CLI v6 更新到 Angular 6 后。我有一个延迟加载的路由设置如下

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 对象的问题,但不确定

4

1 回答 1

0

尝试

loadChildren: BLOG_CONFIG.categoriesModulePath 
于 2018-05-26T22:16:17.003 回答