J'utilise angular 6. Je souhaite envoyer des données (que j'obtiens depuis une API externe) depuis app.component vers d'autres composants (enfants), je ne souhaite pas appeler cet API / service commun dans tous les composants séparément et répétitivement. Je veux l'appeler une fois, c'est pourquoi j'appelle dans app.component.ts
Voici un code de service / API
this.mainService.getBaseModel().subscribe(ret => {
this.basemodel = ret;
}, error => { }, () => {
});
Je veux envoyer ceci ' valeur de basemodel pour tous les composants de mon application. Aidez-moi à le résoudre et à mieux le comprendre. Merci.
3 Réponses :
Il y a deux façons d'y parvenir,
@Input , avec cela, nous pouvons transmettre les données à chaque composant enfant à partir du composant parent . Si vous avez un ou deux composants à partager des données de Parent, utilisez @ Input sinon Service avec les dernières classes RxJs ( BehaviourSubject , Subject code >, etc.) pourrait être très simple.
si vous voulez suivre @Input, suivez ce post - transmettre les données @input à l'enfant
suivez ceci pour le service avec BehaviourSubject - https://medium.com/@ weswhite / angular-behaviorubject-service-60485ef064fc
Sans connaître la structure de votre application, il est difficile de dire quelle approche utiliser. Vous pouvez utiliser:
@Input () et @Output() Dans la documentation officielle Angular, vous pouvez trouver plusieurs approches pour cela. Ils peuvent être trouvés ici: https://angular.io/guide/component-interaction#pass-data-from-parent-to-child-with-input-binding
Il y a aussi des exemples en direct pour les méthodes ci-dessus ici: https://stackblitz.com/angular/plpgkjondrl