更新
似乎这不应该在 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 对象的问题,但不确定