ฉันมีปัญหาในการซ่อนและแสดงองค์ประกอบโดยขึ้นอยู่กับตัวแปรบูลีนใน Angular 2
นี่คือรหัสสำหรับ div ที่จะแสดงและซ่อน:
<div *ngIf="edited==true" class="alert alert-success alert-dismissible fade in" role="alert">
<strong>List Saved!</strong> Your changes has been saved.
</div>
ตัวแปรคือ "แก้ไข" และเก็บไว้ในองค์ประกอบของฉัน:
export class AppComponent implements OnInit{
(...)
public edited = false;
(...)
saveTodos(): void {
//show box msg
this.edited = true;
//wait 3 Seconds and hide
setTimeout(function() {
this.edited = false;
console.log(this.edited);
}, 3000);
}
}
องค์ประกอบจะถูกซ่อนเมื่อเริ่มต้นฟังก์ชัน saveTodos องค์ประกอบจะปรากฏขึ้น แต่หลังจาก 3 วินาทีแม้ว่าตัวแปรจะกลับมาเป็นเท็จองค์ประกอบจะไม่ซ่อน ทำไม?
edited
เป็นตัวแปรทั่วโลก สิ่งที่จะเป็นวิธีการของคุณภายใน*ngFor-loop
?