我可以相对于特定时间自动更改mat-slide-toggle的正确/错误状态吗?我正在与Firestore合作。
我希望当它为true
时,在24小时后它将自动更改为false
。这可能吗?
我尝试的是在一定时间内授予对内容的访问权限。
目前,我的代码可以手动更新:
component.html
<mat-slide-toggle #toggle [ngModel]="aviso.publicado" (ngModelChange)="actualizarPublicado(aviso.id, aviso, $event)">
<span *ngIf="!aviso.publicado" class="text-muted">No publicado</span>
<span *ngIf="aviso.publicado" class="text-primary">Publicado</span>
</mat-slide-toggle>
component.ts
actualizarPublicado(key, obj, e){
this.fs.updatePublicado(key, e);
}
service.ts
updatePublicado(key, publicado){
this.afs.doc('avisos/' + key).update({publicado});
}
答案 0 :(得分:0)
您是否尝试过使用setInterval函数?
toggleValue = false;
interval : any;
ngOnInit(){
this.set24HourInterval();
}
set24HourInterval(){
this.interval = setInterval(()=>{
this.toggleValue = !this.toggleValue;
this.fs.updatePublicado(this.aviso.id, this.toggleValue);
},24*60*60*1000);
}
如果您希望它根据条件停止迭代,则只需使用
this.clearInterval(this.interval);
在该功能内。
已更新:
actualizarPublicado() {
this.interval = setInterval(() => {
this.avisos.subscribe((avisos) => {
avisos.forEach((aviso) => {
aviso.publicado = !aviso.publicado;
this.fs.updatePublicado(aviso.id, aviso.publicado);
});
});
}, 2000);
}