【问题标题】:mat-slide-toggle change true / false in Firestore automaticallymat-slide-toggle 在 Firestore 中自动更改 true / false
【发布时间】:2018-12-08 16:06:29
【问题描述】:

我可以根据特定时间自动更改 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>

组件.ts

actualizarPublicado(key, obj, e){
  this.fs.updatePublicado(key, e);
}

service.ts

updatePublicado(key, publicado){
  this.afs.doc('avisos/' + key).update({publicado});
}

【问题讨论】:

  • 这个西班牙文代码不严重,更新Publicado! O.o,我不喜欢用西班牙语编程,但如果你必须这样做,我认为最好用西班牙语写,而不是奇怪的混合
  • @Umpa jajaja 谢谢你的评论,我认为这是更重要的事情。

标签: angular typescript firebase google-cloud-firestore angular-material2


【解决方案1】:

你试过使用 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);
  }

【讨论】:

  • 我正在尝试,现在我在aviso [ts] 中收到错误 ts 属性“aviso”在“MyComponent”类型中不存在。我试图定义它,但我在 ID 中得到一个错误
  • 你在哪里获得 aviso 对象 (ngModelChange)="actualizarPublicado(aviso.id, aviso, $event)" ?这里也需要用到。
  • 我做了一个stackblitz,所以你可以看到错误:stackblitz.com/edit/mat-slide-toggle-true-false
  • avisos 是一个数组。您是否希望为 avisos 数组的所有对象调用间隔?我认为aviso对象是一个自变量。但是现在我看到了你完整的html,所以它只是一个迭代对象。
  • 是的,是一个数组。是的,有可能吗?
猜你喜欢
  • 2022-10-18
  • 2021-05-24
  • 2023-01-15
  • 2020-03-25
  • 2018-10-06
  • 1970-01-01
  • 2019-01-01
  • 2019-09-16
  • 1970-01-01
相关资源
最近更新 更多