Angular2服务依赖注入

时间:2017-02-05 10:42:11

标签: angular dependency-injection angular2-services

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

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

1 个答案:

答案 0 :(得分:1)

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

这是因为var address = new System.Uri(refURL); var scheme = address.Scheme ; var host = address.Host; 方法在此处作为回调传递:

errorHandler.handleError

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

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

.catch(this.errorHandler.handleError);