Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 在角路由中找不到模块_Angular_Angular2 Routing - Fatal编程技术网

Angular 在角路由中找不到模块

Angular 在角路由中找不到模块,angular,angular2-routing,Angular,Angular2 Routing,我的文件夹结构是: +-- app.module.ts +-- app.routing.ts +-- app.component.ts +-- account/ | +-- account.module.ts | +-- account.routing.ts | +-- account.component.ts 在我的app.routing.ts中 { path: 'account', loadChildren: './account/account.module#Accoun

我的文件夹结构是:

+-- app.module.ts
+-- app.routing.ts
+-- app.component.ts
+-- account/
|   +-- account.module.ts
|   +-- account.routing.ts
|   +-- account.component.ts
在我的app.routing.ts中

  { path: 'account', loadChildren: './account/account.module#AccountModule' },
在account.routing.ts中,我有

  { path: 'login', component: LoginFormComponent}
但当我进入page/account/login时,会出现以下错误:

NodeInvocationException:Uncaught(承诺中):错误:找不到 模块'./account/account.module'。错误:找不到模块 “./account/account.module”

我已尝试将./account/account.module#AccountModule更改为app/account/account.module#AccountModule,同样的错误


有什么想法吗?提前感谢。

请确保您的帐户模块应有如下所示的单一路由

模块延迟加载后将路由的路由代码

const routes: Routes = [{
  path: ':something',
  component: AccountComponent,
}];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class AccountRoutingModule {
}
在核心模块中调用路由模块

@NgModule({
  imports: [
    CommonModule,
    NgbModule.forRoot(),
    AccountRoutingModule,
    ...
你可以试着换衣服

  { path: 'account', loadChildren: './account/account.module#AccountModule' }


注意-不要忘记如上所述导入模块

angular 8中已弃用了
loadChildren
的字符串版本

见: 见:

角度8/9中的新语法

新语法采用动态导入表达式。这是一个返回导入的函数。在那里导入模块是至关重要的。否则,您不是懒惰地加载模块,而是急切地加载模块

{ 
path: 'account', 
loadChildren: ()=> import('./account/account.module').next(mod => mod.AccountModule) 
}
文件:

angular 10中的新语法

在angular 10中,语法再次发生轻微变化。现在,它提供了作为JavaScript承诺(:)结果的导入:

警告:导入后分配模块不会延迟加载您的模块


S.Pradeep的解决方案仍然会急切地加载模块!您可以通过在检查导航到延迟加载路径的新(延迟加载)网络请求时实现这两种方法来检查自己。

我遇到了同样的问题,我尝试了两种方法。但是改变app.routing.ts就可以了

只需将您的线路替换为:

{ path: 'account', loadChildren: () => AccountModule },

我希望这会有所帮助

您是否尝试过
/app/account/account.module#AccountModule
?Angular中的相对路径会一直导致奇怪的意外结果。@I.R.R.没有成功:(代码的其他部分如何?promise从哪里获取数据?我曾经不得不花两天时间处理一个非常类似的问题,因为我没有放两个点(…)和一个斜线(/)在我的API终结点前面,只是想让您了解在这个路径问题上可以预期的调试类型。您可以显示AccountModule代码吗?必须尝试快速加载吗?如果是,是否有效?查看他的设置,似乎他正在尝试延迟加载。此解决方案将使其成为快速加载。这应该是正确答案。我的代码否无法使用第一种方法:{path:'account',loadChildren:'./account/account.module#AccountModule'}我不知道实现loadChildren的原始方法为什么不起作用,但这确实解决了我的问题。我希望符号链接/连接或带空格的父路径可能是个问题。原始方法对同事有效,但对我无效(我使用ntfs连接和包含空格的路径)。这解决了我的问题。但我不明白:你是怎么想到这个主意的?我从来没有想过。谢谢!这个解决方案在Angular10中运行良好。旧方法:{path:'account',loadChildren:'./account/account.module#AccountModule'}在Angular10中,稍微更改为:{path:'account',loadChildren:()=>import('./account/account.module')。然后(mod=>mod.AccountModule)}@ChinaHelloWorld Thx作为注释!我更新了答案,还提供了Angular 10的语法;)。
{ 
path: 'account', 
loadChildren: ()=> import('./account/account.module').then(mod => mod.AccountModule) 
}
{ path: 'account', loadChildren: () => AccountModule },