Angular 12个延迟加载语法——什么是正确的?
Angular 12 lazy loading syntax - what is correct?
我正在学习 Angular 培训课程(使用 Angular 12)。
{ path: 'training', loadChildren: './training/training.module.ts#TrainingModule'},
不工作:
Unhandled Promise rejection: Cannot find module './training/training.module.ts' ; Zone: ; Task: Promise.then ; Value: Error: Cannot find module './training/training.module.ts
我 100% 确定来自 app-routing.module.ts
的包含此代码的路径是正确的(我 copy/pasted 它,以确保)。
但是,之前的课程(由同一位讲师授课)让我认为正确的语法应该是:
{path: 'training', loadChildren: () => import('./training/training.module').then(module => module.TrainingModule)}
为什么会有这两种可能?它们在功能上是等价的吗?我应该什么时候使用哪个?
延迟加载功能模块语法在 angular 的主要版本中的某个时刻发生了变化。在您的情况下 (Angular 12) 使用新语法。
新语法是
{path: 'training', loadChildren: () => import('./training/training.module').then(module => module.TrainingModule)}
这将适用于较旧的 anuglar 应用程序
{ path: 'training', loadChildren: './training/training.module.ts#TrainingModule'},
我正在学习 Angular 培训课程(使用 Angular 12)。
{ path: 'training', loadChildren: './training/training.module.ts#TrainingModule'},
不工作:
Unhandled Promise rejection: Cannot find module './training/training.module.ts' ; Zone: ; Task: Promise.then ; Value: Error: Cannot find module './training/training.module.ts
我 100% 确定来自 app-routing.module.ts
的包含此代码的路径是正确的(我 copy/pasted 它,以确保)。
但是,之前的课程(由同一位讲师授课)让我认为正确的语法应该是:
{path: 'training', loadChildren: () => import('./training/training.module').then(module => module.TrainingModule)}
为什么会有这两种可能?它们在功能上是等价的吗?我应该什么时候使用哪个?
延迟加载功能模块语法在 angular 的主要版本中的某个时刻发生了变化。在您的情况下 (Angular 12) 使用新语法。
新语法是
{path: 'training', loadChildren: () => import('./training/training.module').then(module => module.TrainingModule)}
这将适用于较旧的 anuglar 应用程序
{ path: 'training', loadChildren: './training/training.module.ts#TrainingModule'},