2017-10-10 18 views
0

J'ai un composant avec quelques listes déroulantes. Chaque liste déroulante est remplie par un tableau (chargé via des services de repos) et parfois ces tableaux peuvent être mis à jour. Existe-t-il un moyen d'appeler une fonction lorsque ces tableaux changent? Comme un écouteur sur une variable qui est réaffecté lorsque je fais quelque chose.Angulaire 4 - On change l'objet composant

Merci Fabrizio

+1

comment sont-ils mis à jour exactement? Je pense que vous appelez sûrement le service de repos pour recharger vos données, êtes-vous? –

+0

Si vous pouvez poster la façon dont vous mettez à jour les données de votre liste déroulante, nous pourrions peut-être vous aider – CruelEngine

+0

J'appelle le service de repos et mettre à jour le tableau. Ce tableau remplira le champ "option" d'une liste déroulante 'this.gameService.getGameProviders(). Subscribe (data => { this.providers = this.emptyMapItem.concat (data.filter (valeur => valeur.filter == = this.game.groupId)); }, erreur => console.error (erreur)) ' –

Répondre

0

Si dropdowns sont des composants séparés et tableaux sont passés à eux, vous pouvez utiliser OnChanges. ngOnChanges La fonction est appelée lorsqu'une propriété liée à des données d'une directive est modifiée.

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

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

Il n'y a pas d'angle équivalent à AngularJS' $watch.

Vous pouvez également appeler la fonction souhaitée après la mise à jour des données de réussite lorsque vous appelez l'API REST.