在将一些组件从一个模块移动到另一个模块后,我在加载Angular 2应用程序时出现问题。我的猜测是我在代码本身做错了,但是我得到的错误没有用,我不知道它是Angular还是Webpack的问题。
加载应用程序时出错:
Uncaught TypeError: Object prototype may only be an Object or null: undefined at setPrototypeOf (<anonymous>)
这是我在加载应用程序时遇到的错误。我知道问题与应用程序中的服务有某种关系,但我不确定发生了什么。这是应用程序失败的地方:
是什么导致了这个问题?
我的应用程序中有四个模块:
我的目标是遵循关于模块的Angular guidelines。我刚刚设置了上面列出的模块,我注意到我错误地使用了CoreModule。除了提供应用程序中使用的服务之外,我还在本模块中添加了“通用”/“可重用”组件。
阅读常见问题解答specifically about feature modules后,我开始将这些组件移至SharedModule。现在,大多数这些组件都使用了CoreModule中的服务。一旦我将这些组件移动到SharedModule并更新了必要的代码,我开始遇到这个问题。
目前,我所拥有的模块按以下方式设置:
我不确定我是否在错误的位置导入错误的模块,但我无法弄清楚为什么我只是因为我将一个组件从一个模块移动到另一个模块而得到此错误。我无法理解错误,这使我很难理解错误。
设置版本:
进一步调查
如上所述,在当前设置中,我将大部分服务用于整个应用程序中的一个CoreModule(核心文件夹)。使用这些服务的组件位于SharedModule(共享文件夹)中。当这些组件位于同一模块和文件夹中时,一切都按预期工作。
现在,当我在SharedModule中移动这些组件时,起初我遇到的错误就像所描述的那样here,但我之前已经遇到过这种情况,我只是更改了import
s我必须参考服务直接而不是桶。一旦我更改了这些导入,我就会收到上面显示的错误。我再次对问题是什么感到迷茫,我无法理解错误,我所做的改变是组件被移动到另一个文件夹和模块到服务所在的位置。我的怀疑是,不知何故创建了循环依赖,但我不确定。