[英]Angular2 services dependency injection
AuthService => login
,记录器正确附加了Foo!
在浏览器控制台中,但是当ErroHandler => handleError
,记录器的实例始终是未定义的(在类的构造函数中除外)。 我希望看到Bar!
也将beeing附加在浏览器控制台中。 谁能向我解释这种行为?
这个问题与依赖注入无关。 如果发生DI问题,则会导致编译器发出错误消息。
发生这种情况是因为errorHandler.handleError
方法在此处作为回调传递:
.catch(this.errorHandler.handleError);
并且未正确绑定到上下文。
这是一个典型的错误。 除非知道对象方法绑定在对象构造上(这对于应该被设计用作回调的方法是一个好习惯),否则它应该始终像
.catch(err => this.errorHandler.handleError(err));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.