angular 7 TypeError:无法读取未定义的属性“ hasOwnProperty”

时间:2018-12-19 17:31:40

标签: node.js angular

是的,在SO上有数十起类似问题的发生,这就是问题所在。它们是如此的通用以至于无济于事。我了解此错误的含义,但希望有人能帮助我在某处找到它的“原因”。

我有一个使用CLI生成的Angular 7应用程序,并且在加载我的模块之一时遇到此错误。无论模块是同步加载还是延迟加载,都会发生这种情况。

明显的根本原因是无法解决模块依赖性。实际上,我已经逐步完成了@ angular / core中的模块依赖关系解析代码(很有趣,我会告诉你),发现在故障点,用于解决模块依赖关系的注入令牌类似于“ undefined_348”,而不是“ Router_43”或类似名称。

未定义的令牌出现在与我编写的服务相对应的其他令牌附近,因此,我很确定自己做错了什么,或者没有完成应做的事情。但是,我还有另一个模块可以注入相同的依赖项,并且可以正确加载。我希望有人能在相同的背景下看到此错误,并且可以提供有关如何找到任性依赖项的线索。

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 
'hasOwnProperty' of undefined
TypeError: Cannot read property 'hasOwnProperty' of undefined
at getInjectableDef (core.js:120)
at resolveNgModuleDep (core.js:19748)
at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (core.js:20452)
at injectInjectorOnly (core.js:1173)
at inject (core.js:1178)
at injectArgs (core.js:1230)
at core.js:14376
at _callFactory (core.js:19825)
at _createProviderInstance (core.js:19783)
at resolveNgModuleDep (core.js:19758)
at resolvePromise (zone.js:814)
at resolvePromise (zone.js:771)
at zone.js:873
. . .

顺便说一句,如果@ angular / core最终生成像这样的“未定义”注入令牌,似乎肯定会早得多失败,因此我对可能有帮助的任何上游解决方案持开放态度。

Angular CLI: 7.0.6
Node: 8.11.3
OS: linux x64
Angular: 7.1.0
... animations, cdk, common, compiler, compiler-cli, core, forms
... http, language-service, material, platform-browser
... platform-browser-dynamic, router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.10.6
@angular-devkit/build-angular     0.10.6
@angular-devkit/build-optimizer   0.10.6
@angular-devkit/build-webpack     0.10.6
@angular-devkit/core              7.0.6
@angular-devkit/schematics        7.0.6
@angular/cli                      7.0.6
@ngtools/webpack                  7.0.6
@schematics/angular               7.0.6
@schematics/update                0.10.6
rxjs                              6.3.3
typescript                        3.1.6
webpack                           4.19.1

1 个答案:

答案 0 :(得分:0)

将所有服务放在app.module.ts的提供程序数组中,我的问题不是将LocalStorageService放在提供程序中