Angular 函数可以';我看不到自己以外的任何东西(角度)
我为angular做了一个经典的拦截器,现在我为syncfusion请求做了一个拦截器。我找到了解决办法,但我有个问题。 为什么我不能在我的函数实例中调用方法? 这是我的源代码Angular 函数可以';我看不到自己以外的任何东西(角度),angular,typescript,Angular,Typescript,我为angular做了一个经典的拦截器,现在我为syncfusion请求做了一个拦截器。我找到了解决办法,但我有个问题。 为什么我不能在我的函数实例中调用方法? 这是我的源代码 如果出现401错误,我只想返回登录页面,因此如果我可以直接调用登录页面而不使用goBack方法,那就更好了。每个函数声明都有自己的上下文,默认情况下,这是引用的。要保留外部此功能,您可以将该功能替换为箭头功能 正如我想说的-这是一个简单的解决方案。 import { DataManager, UrlAdaptor }
如果出现401错误,我只想返回登录页面,因此如果我可以直接调用登录页面而不使用goBack方法,那就更好了。每个函数声明都有自己的上下文,默认情况下,这是
引用的。要保留外部此
功能,您可以将该功能替换为箭头功能
正如我想说的-这是一个简单的解决方案。
import { DataManager, UrlAdaptor } from '@syncfusion/ej2-data';
import { CookieService } from 'ngx-cookie-service';
import { Router } from '@angular/router';
import { AppGlobalService } from '../appglobal.service';
export class CustomAdaptor extends UrlAdaptor {
router: Router;
constructor(private AppGlobal: AppGlobalService) {
super();
}
beforeSend(dm: DataManager, request: XMLHttpRequest) {
request.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
dm.dataSource.headers = [{ 'Authorization': 'Bearer ' + this.AppGlobal.GetCookie() }];
request.onloadend = function () {
if (request.status == 401) {
this.goBack();
}
}
}
goBack() {
this.router = this.AppGlobal.GetRouter();
this.router.navigate(['login']);
}
}
request.onloadend = () => {
if (request.status == 401) {
this.goBack();
}
}