-
@Input デコレータを使用する方法: 子コンポーネントで、@Input デコレータを使用してプロパティを定義します。これにより、親コンポーネントからデータを子コンポーネントにバインドすることができます。以下は具体的な例です。
親コンポーネントのテンプレート:
<app-child [data]="parentData"></app-child>
子コンポーネントのクラス:
import { Component, Input } from '@angular/core'; @Component({ selector: 'app-child', template: '<p>{{ data }}</p>' }) export class ChildComponent { @Input() data: any; }
上記の例では、
data
という名前のプロパティを子コンポーネントで作成し、@Input()
デコレータを使用して親コンポーネントからデータをバインドします。 -
イベントを使用する方法: 子コンポーネントでイベントを発行し、親コンポーネントでイベントを購読することで、データを渡すこともできます。以下は具体的な例です。
子コンポーネントのクラス:
import { Component, EventEmitter, Output } from '@angular/core'; @Component({ selector: 'app-child', template: '<button (click)="sendData()">データ送信</button>' }) export class ChildComponent { @Output() dataEvent = new EventEmitter<any>(); sendData() { const data = '子コンポーネントからのデータ'; this.dataEvent.emit(data); } }
親コンポーネントのテンプレート:
<app-child (dataEvent)="receiveData($event)"></app-child>
親コンポーネントのクラス:
import { Component } from '@angular/core'; @Component({ selector: 'app-parent', template: '<p>{{ receivedData }}</p>' }) export class ParentComponent { receivedData: any; receiveData(data: any) { this.receivedData = data; } }
上記の例では、子コンポーネントで
dataEvent
という名前のイベントを作成し、sendData
メソッド内でデータを発行します。親コンポーネントでは、(dataEvent)="receiveData($event)"
のようにイベントを購読し、receiveData
メソッドでデータを受け取ります。
これらの方法を使用すると、Angularで子コンポーネントから親コンポーネントにデータを簡単に渡すことができます。適切な方法を選択し、アプリケーションの要件に応じて使用してください。