混合AngularJS/Angular 6应用程序模块依赖性问题

混合AngularJS/Angular 6应用程序模块依赖性问题,angularjs,angular,ng-upgrade,Angularjs,Angular,Ng Upgrade,我目前正在探索将AngularJS 1.6应用程序升级到AngularJS 6的途径。我已经将我的应用程序作为一个混合应用程序启动,并且我已经开始转换各个模块和组件。不过,我需要能够分块进行迁移。如果我能一次迁移一个模块就好了,但是我遇到了一些问题 我有一个NavBar指令,它驻留在我的coreAngularJS模块中。该组件正在使用降级组件降级,并在AngularJS核心模块上注册。landingAngularJS模块依赖于core模块,因此它可以使用NavBar。这很好,因为着陆组件也已转换

我目前正在探索将AngularJS 1.6应用程序升级到AngularJS 6的途径。我已经将我的应用程序作为一个混合应用程序启动,并且我已经开始转换各个模块和组件。不过,我需要能够分块进行迁移。如果我能一次迁移一个模块就好了,但是我遇到了一些问题

我有一个
NavBar
指令,它驻留在我的
core
AngularJS模块中。该组件正在使用
降级组件
降级,并在AngularJS
核心
模块上注册。
landing
AngularJS模块依赖于
core
模块,因此它可以使用
NavBar
。这很好,因为
着陆组件
也已转换为Angular6,并且正在降级并在
着陆
AngularJS模块上注册

但是,在任何其他AngularJS组件中使用
NavBar
组件都有问题。我有第三个AngularJS模块,名为
workflows
,其中有一个
ViewWorkflows
组件,该组件的模板中有一个
NavBar
。当我导航到该组件时,会出现以下错误:

angular.js:14791错误:未找到NavBarDirective的组件工厂。您是否将其添加到@NgModule.entryComponents?

我可以通过转换然后降级
ViewWorkflows
来解决这个问题,但是既然
NavBar
被注册为降级的AngularJS组件,那么任何声明依赖于
核心
模块的AngularJS模块都不应该访问它吗


编辑:我更新了要点,使之更简单一点。
着陆
模块是有角度的,带有一个角度组件
,该组件被降级为在AngularJS
着陆
模块上运行,并且内部有一个
。它依赖于提供降级指令的
核心
模块。
组件是在AngularJS
登录
模块上注册的AngularJS组件,无法使用
。即使没有将
工作流
模块引入这种情况,它也无法工作。我做错了什么?

我已经设法解决了这个问题。我试图将
导航栏
声明为角度
@指令
。它实际上需要是一个
@组件
。在切换之后,它完全按照预期工作


我对回购协议进行了测试,发现了问题所在。这是一款新的Angular 6应用程序,我将其“降级”以供试验。

您有没有代码来显示您如何降级AngularJs的Angular组件以及如何在AngularJs中注册它?此外,我相信,每个降级的组件都必须在Angular模块中声明为@NgModuleI中的入口组件,可以一起讨论一些问题。我并不是说你错了,它需要成为一个入门组件,但我可以让它在没有它的情况下工作,添加它并不能解决问题。工作解决方案是,使用降级指令的每个组件也必须是降级组件/指令。在如此庞大的模块化应用程序中,这是一条不太可靠的升级路径。向下滚动一点,文档中有规定,我很欣赏这个想法,但我已经把那篇文章梳理了好几次。它没有涉及我的用例,而且据我所知,我没有违反任何规则。