2017-10-10 2 views
0

Ich habe eine Komponente mit einigen Aufklappmenü. Jedes Dropdown-Feld wird von einem Array ausgefüllt (geladen über Rest-Services) und manchmal können diese Arrays aktualisiert werden. Gibt es eine Möglichkeit, eine Funktion aufzurufen, wenn sich diese Arrays ändern? Wie ein Listener auf einer Variablen, die, wenn neu zugewiesen wird, mache ich etwas.Angular 4 - Auf Änderungskomponente Objekt

Dank Fabrizio

+1

Wie werden sie genau aktualisiert? Ich denke, dass Sie sicherlich den Restdienst anrufen, um Ihre Daten neu zu laden, oder? –

+0

Wenn Sie die Art und Weise veröffentlichen können Sie die Daten Ihrer Dropdown aktualisieren, könnten wir in der Lage sein – CruelEngine

+0

zu helfen, ich den Rest Dienst bin aufrufen und das Feld zu aktualisieren. Dieses Array wird die "Option" Feld einer Dropdown 'this.gameService.getGameProviders() füllen. Subscribe (data => { this.providers = this.emptyMapItem.concat (data.filter (Wert => value.filter == = this.game.groupId)); }, error => console.error (error)); ' –

Antwort

0

Wenn Dropdown-Listen sind separate Komponenten und Arrays werden an sie übergeben, können Sie OnChanges verwenden. ngOnChanges Funktion wird aufgerufen, wenn sich eine datengebundene Eigenschaft einer Direktive ändert.

@Component({selector: 'my-cmp', template: `...`}) 
class MyComponent implements OnChanges { 
    @Input() 
    prop: number; 

    ngOnChanges(changes: SimpleChanges) { 
    // changes.prop contains the old and the new value... 
    } 
} 

Es gibt keinen Winkel entspricht AngularJS' $watch.

Alternativ können Sie die gewünschte Funktion nach Erfolg Datenaktualisierung aufrufen, wenn Sie REST-API aufrufen.