Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angular 2:Circular Feature模块依赖项大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在研究Angular2的一个应用程序.我有3个功能模块,其中包含其他子功能模块.
我想将要素1的子要素模块加载到要素2的子要素模块中,反之亦然.下面是示例代码.

行动routIng.module.ts

const routes: Routes = [
    {
        path: '',component: ActionComponent,children: [
          {
           path: ':id',loadChildren: 'app/action/action-detail/action-detail.module#ActionDetailModule'
          }
        ]
     }
];

动作细节routIng.module.ts

const routes: Routes = [
    {
        path: '',component: ActionDetailComponent,},{
        path: 'topic-detail/:id',loadChildren: 'app/topic/decision-topic-detail/decision-topic-detail.module#DecisionTopicDetailModule',}
]

话题routIng.module.ts

const routes: Routes = [
    {
        path: '',component: TopicComponent,loadChildren: 'app/topic/decision-topic-detail/decision-topic-detail.module#DecisionTopicDetailModule'
          }
        ]
     }
];

决策主题的细节routIng.module.ts

const routes: Routes = [
    {
        path: '',component: DecisionTopicDetailComponent,{
        path: 'action-detail/:id',loadChildren: 'app/action/action-detail/action-detail.module#ActionDetailModule'
    }
]

这会在编译时超出最大调用堆栈大小时创建循环依赖并抛出ERROR错误.

有没有办法解决这个错误.我知道一种@L_450_10@是自己加载整个功能模块,但这不是可行的情况.

提前致谢.

解决方法

路由应该位于与组件分开的位置,并且在模块外部声明这些组件.

在最长的时间里,我也遵循了你正在使用的模式. topic-routIng.module.ts似乎应该与主题组件一起使用.但最近我开始以不同的方式思它,你的难题在这里完美地突出了这一点.

我已经开始将路由视为给定应用程序的核心.当我开始编写第二个应用程序并决定重用我在第一个应用程序中编写的许多组件/模块时,就发生了这种范式转换.我注意到重用的唯一事情就是路线.

就好像路由定义了“app”,模块/组件是任何给定应用程序使用的构建块.

鉴于此,我建议如下:

将您的路线定义从每个模块移到顶级应用程序中.它们可以存在于app.routes旁边的目录中,您可以将它们分布在当前文件中,或者如果您没有那么多,则可以将它们合并到同一个文件中.

这可能看起来违反直觉,并且您失去了“垂直”分组,其中所有主题内容主题一起存在,并且所有动作内容与动作一起生效.但是当你把路线视为一种根本不同的动物而不是它们所指的组件时,它就不那么痛苦了,它肯定能解决你的问题.

src
  |-app.component.ts
  |-app.component.html
  |-app.routes.ts  <-- includes the routes in the sibling directory
  |-routIng
      |- action.routes.ts
      |- action-detail.routes.ts
      |- topic.routes.ts
      \- decision-topic-detail.ts
  |-decision-topic-detail (modulE)
  |-topic (modulE)
  \-action (modulE)

大佬总结

以上是大佬教程为你收集整理的Angular 2:Circular Feature模块依赖项全部内容,希望文章能够帮你解决Angular 2:Circular Feature模块依赖项所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。