2017-02-04 7 views
1

Ich versuche, eine Komponente auf meiner Angular App zu bauen und einige Probleme zu bekommen. Lassen Sie mich erklären ...Update ngFor auf Angular APP

Ich habe dieses ngFor:

<tr *ngFor="let processo of processos; let i = index; trackBy: trackById;"> 

auf meinem component.ts i dieses:

processos: Array<any> 

Wenn ich einen neuen Prozess versuchen, hinzuzufügen, i erhalten ein neues Dokument, und Speicher dann auf meinem LocalStorage:

Bis jetzt funktioniert alles gut. Ich habe die Daten erhalten und meine Ansicht aktualisiert. Nun begann meine Probleme ...

ich diesen Code haben:

let updateData = Observable.interval(30000) 
     .take(60) 
     .flatMap(() => { 
      return this.advogadoService.getOne(id) 
     }) 

    this.search = updateData.subscribe(
     doc => { 
      if(doc.processType) { 
       this.updateService.update(doc, 'processos'); 
       this.processos = JSON.parse(localStorage.getItem('processos')); 
       this.stopNow(); 

       iziToast.success({ 
        title: 'Processo atualizado', 
        message: `O processo ${doc.processNumber}, foi atualizado com sucesso!`, 
        icon: 'fa fa-bell-o', 
        layout: 2, 
        balloon: true, 
        timeout: 10000, 
       }) 
      } 
     } 
    ) 

} 

stopNow() { 
    this.search.unsubscribe() 

} 

Dieser Code versucht 60-mal, in Intervallen von 30 Sekunden aktualisiert Daten, bevor senden wurde erhalten. Wenn ich die neuen Daten erhalten, setzen Sie ihn auf LocalStore, und mit diesem Befehl meiner Ansicht aktualisieren:

this.processos = JSON.parse(localStorage.getItem('processos')); 

aber meiner Meinung nach mit den neuen Daten nicht aktualisiert werden, bis ich auf die auf meiner Ansicht nach in einem Objekt bin klicken , wie auf Knopf zum Beispiel.

Ich muss meine Ansicht jedes Mal aktualisieren, wenn ich neue Daten erhalte.

Was kann ich am besten tun?

Dank

Antwort

0

ngOnChanges Mit Angular der ist eine gute Lösung für diese Art von Szenario, denn es ist ein Lebenszyklus Haken ist, dass, wenn eine datengebundenen Eigenschaft einer Richtlinie Änderungen aufgerufen wird. Mehr Infos hier: https://angular.io/docs/ts/latest/api/core/index/OnChanges-class.html

+0

Versuche es schon ... nicht in meinem Fall ... Vielleicht habe ich es falsch gemacht ... kannst du ein Beispiel schicken? Vielen Dank. –