2016-11-18 3 views
0

Ich erstelle ein Image von einer externen Quelle (ein QR Code auf einem Java EE Server). Wenn meine Angular2-App die Daten für das Bild aktualisiert, wird alles auf dem Server aktualisiert, aber das resultierende Bild wird in der eckigen App nicht aktualisiert. Ich mache gerade eine zone.run, aber es scheint nicht das Bild zu aktualisieren, Alles ist in Ordnung, wenn die gesamte Seite aktualisiert wird (z. B. wenn ich einen location.reload platzieren). Hat jemand kein Recht, ein Bild von einer externen Quelle zu aktualisieren?Angular 2 Image wird nicht aktualisiert mit Zone run

Schablone hat dies:

 <img [src]=url /> 

Komponente hat dies:

 this.zone.run(()=>{ 
      this.url = QRURL + this.selectedProduct.id; 
     }); 

QRURL ist eine Konstante, die die URL des Servers enthält, der die Erzeugung des Bildes ausführt.

+0

Sie sollten Zone nicht selbst ausführen müssen. Es ist entweder ein Cache-Problem oder etwas über die Syntax ('' sollte '' sein. Bitte geben Sie etwas Code um 'this.zone.run', wir brauchen mehr Kontext. – Maxime

+0

Wenn es ein Cache-Problem ist, versuchen Sie es zu ändern Ihre URL zu: 'this.url = QRURL + this.selectedProduct.id + '?' + new Date(). getTime();'. Auf diese Weise wird Ihr Browser keinen Cache treffen (wegen Zeitstempel). – Maxime

Antwort

0

Die Zitate haben es nicht behoben, aber Maximes zweiter Kommentar tat es. Meine Konstante y hatte bereits eine Abfragezeichenfolge, also habe ich gerade das date stuff als weiteren Parameter hinzugefügt, und das hat den Trick gemacht und ich konnte den zone.run entfernen. Die endgültige Variable sah so aus:

 this.url = QRURL + this.selectedProduct.id + '&date=' + new Date().getTime(); 

Danke!

Verwandte Themen