我正在使用 Angular 中的双向绑定对点击进行简单的倒计时。我有一个数字元素,它在一个带有 setInterval 的函数中获取它的值,该函数在按钮单击时执行。但是当我启动它时,该值被视为未定义,一秒钟后显示该值但未定义仍然存在。
HTML 组件:
<p class="alert">{{comUser}} {{visibleCounter}}</p>
<button class="buttonMain" (click)="log(email, password)" (click)="countTo0()">Login</button>
组件.ts
export class LoginComponent implements OnInit {
public comUser = '' }
public visibleCounter;
public counter: number = 4;
public alert: string = "SIGN IN";
countTo0() {
const frequency = setInterval(() => {
this.visibleCounter = this.counter;
console.log(this.counter);
let oneDown = this.counter--
console.log("visible counter: ", this.visibleCounter);
if (this.counter <= 0 ) {
clearInterval(frequency);
this.document.location.reload()
}
}, 1000);
}
然后在 else 语句中调用该函数,因为这是登录组件的一部分。如果您传递了错误的凭据,您会收到一条消息,指出它将在 [秒数] 内重新加载。
else{
this.comUser = `Reloading in ${this.visibleCounter}`;
this.alert = "WRONG LOGIN OR PASSWORD"
}
结果看起来像这样(计数器有效,但“未定义”仍然存在)
感谢您提供有关导致这种奇怪行为的原因的任何提示。