当在Angular中使用setInterval
时,ngIf
对于img
元素的行为可能会出现问题。这是因为ngIf
指令会根据条件决定是否将元素添加到DOM中,而setInterval
会在每个时间间隔触发回调函数。
为了解决这个问题,可以使用*ngIf
指令结合一个布尔值来控制img
元素的显示与隐藏。在setInterval
的回调函数中,更新布尔值来控制img
元素的显示。
以下是一个示例代码:
在组件的HTML模板中:
在组件的TypeScript代码中:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponent implements OnInit {
showImage: boolean = false;
ngOnInit() {
setInterval(() => {
this.showImage = !this.showImage;
}, 1000);
}
}
在上述代码中,showImage
变量初始化为false
,这意味着img
元素将不会显示。然后,使用setInterval
函数每隔1秒切换showImage
的值。这将导致img
元素在显示和隐藏之间切换。
这样,ngIf
指令将根据showImage
的值来动态添加或移除img
元素,从而实现在使用setInterval
时对img
元素进行控制的效果。