【发布时间】:2016-05-18 00:32:17
【问题描述】:
在下面的打字稿函数中,'this' 不会解析为 EmailValidator 的实例。如何更正此函数,使其解析为正确的 EmailVaildator 实例,然后我可以访问 _registerServices?
class EmailValidator {
constructor(private _registerServices: RegisterServices) { }
isAvailable(c: AbstractControl): Promise<ValidationResult> {
let q = new Promise((resolve, reject) => {
this._registerServices.emailIsAvailable(antiForgeryToken(), c.value)
.then(result => {
// Need to actually check the result.
resolve({ "emailtaken": true })
},
error => {
// Need to communicate the server error? Probably not.
resolve({ "servererror": true })
});
});
return q;
}
}
【问题讨论】:
-
嗯。看起来胖箭头应该已经这样做了。并且查看生成的 Javascript,它似乎正确地别名为
this。你确定这是你看到的问题吗? -
@Thilo 我后来发现问题有点隐藏,问题出在其他地方。我已经发现了如何纠正我的问题,但是有一些关于“为什么”问题发生的细节,我非常感谢一些指导。我会发布我的解决方案。
标签: typescript angular scoping