私のアプリケーションでは2つのコンポーネントが呼び出されています。私はここでオンラインで検索し、親子関係を持つコンポーネントに関する決定的な例しか見つけられませんでした。角4:等しい階層の2つのコンポーネント間でパブリックメソッドを呼び出す
app.component.htmlは次のように
<component1></component1>
<div class="container">
<component2></component2>
</div>
マイ(消毒)コンポーネント1は、サービスから取得し、コンポーネント2の範囲内の変数の一握りを設定コンポーネント2の関数を呼び出す関数を使用
//COMPONENT2
public GetLatest(): Subscription{
console.log("GetLatest Called");
return this._component2Service.GetLatestFromService()
.subscribe(outputData => this.outputData = outputData, error => this.errorMessage = <any>error)
}
:、成分2に呼び出される関数として、以下のコンポーネント2のHTML
//COMPONENT 1
private handler: component2Component;
ExecuteFunction(){
console.log("Called");
this.handler.GetLatest();
}
のデータバインディングに関連付けられていること
ただし、次のエラーが表示されます。ExecuteFunction()を実行するcomponent1ボタンの場所に未定義のGetLatestプロパティを読み取ることができません。
まずComponent2のインスタンスをインスタンス化する必要がありますか?残念なことに、私は重いデータ衛生上の要求を受けています。
component1内のボタンからcomponent2 GetLatest()メソッドを呼び出す方法を知りたいと思います。ありがとう!
あなたは2つの異なるコンポーネントで同じデータを使用している場合、あなたは@injectable使用することができます。 https://angular.io/guide/dependency-injectionまた、別のコンポーネントから編集して見ることができます –