我在隐藏和显示取决于 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 秒后,即使变量返回为 false,元素也不会隐藏。为什么?
原文由 user4956851 发布,翻译遵循 CC BY-SA 4.0 许可协议
您应该使用 *ngIf 指令
更新:当您在 Timeout 回调中时,您缺少对外部范围的引用。
所以像我在上面添加的那样添加 .bind(this)