混合AngularJS/Angular 6应用程序模块依赖性问题
我目前正在探索将AngularJS 1.6应用程序升级到AngularJS 6的途径。我已经将我的应用程序作为一个混合应用程序启动,并且我已经开始转换各个模块和组件。不过,我需要能够分块进行迁移。如果我能一次迁移一个模块就好了,但是我遇到了一些问题 我有一个混合AngularJS/Angular 6应用程序模块依赖性问题,angularjs,angular,ng-upgrade,Angularjs,Angular,Ng Upgrade,我目前正在探索将AngularJS 1.6应用程序升级到AngularJS 6的途径。我已经将我的应用程序作为一个混合应用程序启动,并且我已经开始转换各个模块和组件。不过,我需要能够分块进行迁移。如果我能一次迁移一个模块就好了,但是我遇到了一些问题 我有一个NavBar指令,它驻留在我的coreAngularJS模块中。该组件正在使用降级组件降级,并在AngularJS核心模块上注册。landingAngularJS模块依赖于core模块,因此它可以使用NavBar。这很好,因为着陆组件也已转换
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中的入口组件,可以一起讨论一些问题。我并不是说你错了,它需要成为一个入门组件,但我可以让它在没有它的情况下工作,添加它并不能解决问题。工作解决方案是,使用降级指令的每个组件也必须是降级组件/指令。在如此庞大的模块化应用程序中,这是一条不太可靠的升级路径。向下滚动一点,文档中有规定,我很欣赏这个想法,但我已经把那篇文章梳理了好几次。它没有涉及我的用例,而且据我所知,我没有违反任何规则。