2017-05-08 2 views
0

Ich habe diese beiden Steuerelemente in ionic2 App, wenn ich auf Termine im Kalender klicke, oder schieben Sie die in-Bereich Kontrolle. Es zeigt mir nicht, dass ich die Kalender und die Bereichskontrolle aktualisiere. Aber sobald ich das Dropdown-Menü öffne(), hebt der Kalender das ausgewählte Datum hervor und der Schieberegler wird an die Stelle verschoben, an der ich ihn ausgewählt habe.UI nicht in ionicv2 Rahmen aktualisieren

Antwort

0

Es gibt ein paar Optionen können Sie (alle in den .ts-Dateien) versuchen:

  1. Verwenden NgZone.run()
  2. Verwenden ApplicationRef.tick()

Für Option # 1, müssen Sie injizieren NgZone in Ihren Code (über import) und wickeln Sie mit run() welcher Code die Benutzeroberfläche steuert. Zum Beispiel:

import {Component, NgZone} from '@angular/core'; 
[...] 
ngZone.run(()=>{ 
    console.log("It's running!"); 
}); 

Wie für Option # 2, müssen Sie ApplicationRef und rufen dann die tick() Methode importieren, wenn Sie die Ansicht aktualisieren erzwingen wollen. Zum Beispiel:

import {Component, ApplicationRef} from '@angular/core'; 
[...] 
console.log("It's running!"); 
applicationRef.tick(); 

Es gibt auch eine dritte Option (die ich nicht kenne), die ChangeDetectionRef von @angular/core und rief seine detectChanges() Verfahren in ähnlicher Weise zu applicationRef.tick() importiert.

Beachten Sie, dass dies alles Angular 2-Methoden sind und als solche unter Angular 2's docs dokumentiert sind.

Verwandte Themen