繁体   English   中英

Angular2服务依赖项注入

[英]Angular2 services dependency injection

AuthService => login ,记录器正确附加了Foo! 在浏览器控制台中,但是当ErroHandler => handleError ,记录器的实例始终是未定义的(在类的构造函数中除外)。 我希望看到Bar! 也将beeing附加在浏览器控制台中。 谁能向我解释这种行为?

参考: https : //embed.plnkr.co/cKwT5R39IL1TTJBRvZyY/

这个问题与依赖注入无关。 如果发生DI问题,则会导致编译器发出错误消息。

发生这种情况是因为errorHandler.handleError方法在此处作为回调传递:

.catch(this.errorHandler.handleError);

并且未正确绑定到上下文。

这是一个典型的错误。 除非知道对象方法绑定在对象构造上(这对于应该被设计用作回调的方法是一个好习惯),否则它应该始终像

.catch(err => this.errorHandler.handleError(err));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM