使用AngularJS处理旧项目,由于“未知提供程序”,似乎收到了很好的旧“无法实例化模块”错误,但有趣的是提供此“缺少”提供程序的模块已经被已加载,并且Provider是模块的一部分。 (我知道这一点,因为主模块也使用相同的模块/提供程序)
(依赖关系树)
Main Module
- API Module
- SubModule <-- Fails when this is added
- API Module
主模块加载使用[定制的] API模块,我加载到主模块中的子模块也使用API模块,但是当我添加子模块时,即使提供者(来自API模块)。
同样,主模块正在使用API中的提供程序,所以我知道提供程序已加载的另一个原因。
我在两个模块中都采用了依赖顺序,并检查了模块的加载顺序,而且看起来都是按顺序进行的。
有什么想法会引发此错误?
答案 0 :(得分:0)
弄清楚它是什么。所有这些都是通过重构现有的应用程序代码来实现的。发生的事情是我的提供者实际上正在加载工厂。曾经是
mymodule.factory('substuff', function() {....});
重构也被更改了...
import SubStuffProvider from 'app/providers/SubStuff.provider'
....
mymodule.provider('substuff', SubStuffProvider);
但是,我导入的项目正在导出 Factory (即使文件标记为substuff.provider.js
),而不是我认为的 Provider 。看来它正在使用Factory加载提供程序,我认为AngularJS的加载顺序错误。
无论如何,应该修复我的import
文件,以将“ Provider”文件作为工厂加载,并且应该可以正常工作。
迫不及待想将其移植到Angular 6。