Angular 角度4/5路线配置中断

Angular 角度4/5路线配置中断,angular,routing,Angular,Routing,我有一个根AppModule,其中包含从AppRoutingModule导入的以下路由: AppComponent具有一个。HomeModule具有从HomeRoutingModule导入的以下路由: HomeRootComponent具有一个 当我导航到空路由时,路由器正确地重定向到/home路由,HomeModule从构造器的日志中实例化。我希望仪表板显示在HomeRootComponent插座中,而仪表板本身显示在AppComponent插座中。但是,HomeRootComponent和D

我有一个根AppModule,其中包含从AppRoutingModule导入的以下路由:

AppComponent具有一个。HomeModule具有从HomeRoutingModule导入的以下路由:

HomeRootComponent具有一个

当我导航到空路由时,路由器正确地重定向到/home路由,HomeModule从构造器的日志中实例化。我希望仪表板显示在HomeRootComponent插座中,而仪表板本身显示在AppComponent插座中。但是,HomeRootComponent和DashboardComponent都没有实例化。控制台中没有错误


这里是

这个问题是由循环依赖性引起的。当我在我的机器上重新创建回购协议时,我收到了一些警告

src/app/home/home-routing.module.ts -> src/app/home/index.ts -> src/app/home/home-routing.module.ts
src/app/home/home.module.ts -> src/app/home/home-routing.module.ts -> src/app/home/index.ts -> src/app/home/home.module.ts
src/app/home/index.ts -> src/app/home/home-routing.module.ts -> src/app/home/index.ts
所以基本上,路由模块是在导入桶,而桶就是在导入路由模块

如果您仍然想使用桶来安装组件,我将从桶中移除模块,并根据需要直接导入模块

// app/home/index.ts
export * from './home-root.component';
export * from './dashboard/dashboard.component';
直接导入主路由模块

// app/home/home.module.ts
import {HomeRoutingModule} from './home-routing.module';
import {DashboardComponent, HomeRootComponent} from './';

这是正在工作的stackblitz

我可以通过直接在home-routing.module.ts中导入组件使其工作。出于某种原因,从桶中导入会导致组件未定义。也许这与stackblitz的捆绑方式有关?@LLai谢谢。我试图巧妙地使用木桶。我只需要更改导入和retest@LLai你说得对,它很管用。把它放在一个答案或修复和取消删除你的旧答案,这样我可以给你信用!当我在我的机器上创建回购协议时,我收到了一些警告。问题是循环依赖关系。有关更多信息,请参阅答案。因此,您仍然可以在组件定义中使用桶。对不起,我不小心从上面重写了我的stackblitz。
// app/home/index.ts
export * from './home-root.component';
export * from './dashboard/dashboard.component';
// app/home/home.module.ts
import {HomeRoutingModule} from './home-routing.module';
import {DashboardComponent, HomeRootComponent} from './';