【发布时间】:2021-05-10 22:44:38
【问题描述】:
下面是我的代码,我只想查询后端是否已经注册了电子邮件,但是,无论我将什么电子邮件传递给 verifyEmail 函数,“已注册”变量始终为假,我该如何更新已注册的变量根据后端响应?谢谢
export class MyClass {
registered: boolean = false;
message: string = ''
verifyEmail(email) {
this.registered= false
let verifyEmailUrl = "/backend/GetUserByEmail";
this.http.post(verifyEmailUrl, {
email: email
}).subscribe(
(data) => {
if (data["user"]) { // can find a user
this.message = 'This email has already been registered'
this.registered= true
}
});
}
【问题讨论】:
-
您确定您的
subscribe块中的if语句正在执行吗? -
console.log(data);...这是什么样的?
-
@HarleyThomas 是的,如果语句有效,并且数据正确返回,我只是无法更新订阅块之外的注册变量。 tks
-
你能上传整个.ts代码吗?
-
@CaiJiaJun - 你的意思是视图没有更新吗?如果是这样,那是因为您需要致电
detectChanges。它不会在订阅函数“外部”更新,因为它是async,您可能正在检查它是否同步更新。
标签: javascript angular typescript web frontend