angulaire 4: appel d'une méthode à partir d'un autre composant

J'ai 2 frère de composants, je suis en train de faire une requête http dans un composant, et si l'une de ces conditions se produit, il convient de faire une autre requête http, écrit dans un autre composant. Je devrais donc être en mesure d'appeler la méthode au sein de la première composante.

c'est la première composante:

import { Component, OnInit, Inject } from '@angular/core';
import { Http } from '@angular/http';
import { SendCardComponent } from '../send-card/send-card.component';

@Component({
  selector: 'app-input-field',
  templateUrl: './input-field.component.html',
  styleUrls: ['./input-field.component.css'],
})

export class InputFieldComponent implements OnInit {

value = '';
output = '';
@Inject(SendCardComponent) saro: SendCardComponent;

constructor(private http : Http) { }
onEnter(value: string) { 

this.value = value;


this.http.post('http://localhost:5000/APIconversation/', {"val":value})
  .map(response=>response.json())
  .subscribe(
      data => {

            this.output = data.result.fulfillment.speech,
            if(data.result.fulfillment.speech == 'test'){
                saro.sendCard('done', '1' );   
            }               

       });

 } 

Je suis en train d'appeler sendCard() définie dans sendCardComponent, de InputFieldComponent qui ressemble à ceci:

import { Component, OnInit } from '@angular/core';
import { Http } from '@angular/http';

@Component({
  selector: 'app-send-card',
  templateUrl: './send-card.component.html',
  styleUrls: ['./send-card.component.css']
})

export class SendCardComponent implements OnInit {

constructor(private http : Http) { }

ngOnInit() {

}

 output = '';

 sendCard(value:string, id:number){
   this.http.post('http://localhost:5000/APIconversation/', {"val":value})
  .map(response=>response.json())
  .subscribe(
      data => {

             this.output = data.result.fulfillment.messages[1].payload.options[id].type = $('#'+(id+1)+'>span').html();  

      });
} //sendCard

}

J'obtiens une erreur lors de l'appel de saro.sendCard:

[ts] ne peut pas trouver le nom de 'saro'

Ce que je fais mal?

Vous aurez besoin pour accéder à votre SendCardComponent instance à l'aide de this.saro

OriginalL'auteur Sivvio | 2017-07-19