由于缺少(加载)提供程序,无法在AngularJS中实例化模块

问题描述 投票:0回答:1

使用AngularJS处理旧项目,并且由于“未知提供程序”,似乎得到了旧的“未能实例化模块”错误,但有趣的是,已经加载了提供此“缺失”提供程序的模块,并且提供者是该模块的一部分。 (我知道这个,因为主模块也使用相同的模块/提供者)

(依赖树)

  Main Module
    - API Module
    - SubModule   <-- Fails when this is added
       - API Module

主模块加载使用[自定义] API模块,我加载到主模块的子模块也使用API​​模块,但是当我添加SubModule时,它都会失败,即使是Provider(来自API模块) )完美地运作。

主模块再次使用API​​中的提供程序,因此我知道提供程序已加载的另一个原因。

我在两个模块中都使用了依赖顺序,并检查了模块加载的顺序,这一切看起来都是有序的。

什么可能引发这个错误的想法?

angularjs angular-module angular-providers
1个回答
0
投票

弄清楚它是什么。这一切都来自重构现有的应用程序代码。发生的事情是我的提供商实际上正在加载工厂。过去是什么样的

mymodule.factory('substuff', function() {....});

重构也改变了,是......

import SubStuffProvider from 'app/providers/SubStuff.provider'

....
mymodule.provider('substuff', SubStuffProvider);

但是,我导入的项目是导出工厂(即使文件标记为substuff.provider.js)而不是我认为的提供商,所以它似乎正在加载一个带有工厂的提供商,我相信它是错误的加载顺序对于AngularJS。

无论如何,修复我的imported文件加载“提供者”文件作为工厂,它应该已经完成​​,它的工作原理。

迫不及待地将这件事移交给Angular 6。

© www.soinside.com 2019 - 2024. All rights reserved.