使用AngularJS处理旧项目,并且由于“未知提供程序”,似乎得到了旧的“未能实例化模块”错误,但有趣的是,已经加载了提供此“缺失”提供程序的模块,并且提供者是该模块的一部分。 (我知道这个,因为主模块也使用相同的模块/提供者)
(依赖树)
Main Module
- API Module
- SubModule <-- Fails when this is added
- API Module
主模块加载使用[自定义] API模块,我加载到主模块的子模块也使用API模块,但是当我添加SubModule时,它都会失败,即使是Provider(来自API模块) )完美地运作。
主模块再次使用API中的提供程序,因此我知道提供程序已加载的另一个原因。
我在两个模块中都使用了依赖顺序,并检查了模块加载的顺序,这一切看起来都是有序的。
什么可能引发这个错误的想法?
弄清楚它是什么。这一切都来自重构现有的应用程序代码。发生的事情是我的提供商实际上正在加载工厂。过去是什么样的
mymodule.factory('substuff', function() {....});
重构也改变了,是......
import SubStuffProvider from 'app/providers/SubStuff.provider'
....
mymodule.provider('substuff', SubStuffProvider);
但是,我导入的项目是导出工厂(即使文件标记为substuff.provider.js
)而不是我认为的提供商,所以它似乎正在加载一个带有工厂的提供商,我相信它是错误的加载顺序对于AngularJS。
无论如何,修复我的import
ed文件加载“提供者”文件作为工厂,它应该已经完成,它的工作原理。
迫不及待地将这件事移交给Angular 6。