Angular 服务在异常处理程序中变得未定义
我有一个注入我的Angular 服务在异常处理程序中变得未定义,angular,angular6,servicestack,Angular,Angular6,servicestack,我有一个注入我的身份验证服务的服务。在这个服务中,我启动一个第三方typescript客户端,并在服务中注册一个方法作为异常处理程序 我的问题是,当调用异常处理程序时,AuthenticationService已变得未定义。我在构造函数中设置了断点,可以看到\u auth变量已正确填充。但当调用异常处理程序时,它是未定义的。我尝试将其设置为属性,但出现了相同的行为 这是我的服务: @Injectable({ providedIn: 'root' }) export class DomainA
身份验证服务的服务
。在这个服务中,我启动一个第三方typescript客户端,并在服务中注册一个方法作为异常处理程序
我的问题是,当调用异常处理程序时,AuthenticationService
已变得未定义。我在构造函数中设置了断点,可以看到\u auth
变量已正确填充。但当调用异常处理程序时,它是未定义的。我尝试将其设置为属性,但出现了相同的行为
这是我的服务:
@Injectable({
providedIn: 'root'
})
export class DomainAlertsService {
client : JsonServiceClient;
constructor( private _auth: AuthenticationService ) {
this.client = new JsonServiceClient(environment.apiUrl);
this.client.exceptionFilter = this.exceptionHandler;
}
exceptionHandler(ex : Response)
{
if(ex.status == 401)
{
this._auth.logout(); // _auth is now undefined
location.reload(true);
}
else{
console.log("unhandled exception");
console.log(ex);
}
}
//.. other methods removed
}
我想这是某种范围界定问题,但我不确定到底发生了什么。调用
exceptionHandler()
方法时,为什么\u auth
未定义?我认为需要将其绑定到组件的范围,如下所示:
this.client.exceptionFilter = this.exceptionHandler.bind(this);
我认为您需要将其绑定到组件的范围,如下所示:
this.client.exceptionFilter = this.exceptionHandler.bind(this);
谢谢,这是我的工作。我会接受答复后的时间限制。谢谢,这项工作。我会在期限后接受答案。可能的副本可能的副本