2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

親子コンポーネント間の値の受け渡し

Last updated at Posted at 2020-03-14

少し特殊な書き方をするので備忘録。

#親から子への受け渡し
親側のhtmlで子コンポーネントのプロパティへ渡したい値を設定。
子コンポーネント側では@Inputデコレータを使って受けとる。

親コンポーネント側

parent.component.ts
export class ParentComponent {
  parentValue: string = "hoge";
}
parent.component.html
  <app-child
      [valueFromParent]="parentValue">
  </app-child>

子コンポーネント側

child.component.ts
import { Input } from '@angular/core';

export class ChildComponent {
  @Input() valueFromParent : string;
}

#子から親への受け渡し
こちらは少し特殊になります。

子側で@Outputデコレータを使ったEventEmitterを使い、
親側でイベントをトリガーさせて親側へ値を渡します。

子コンポーネント側

child.component.ts
import { Output } from '@angular/core';

export class ChildComponent {
  childValue: string = "hoge";
  @Output() onChild: EventEmitter = new EventEmitter<string>();

  onBtnClick(){
    this.onChild.emit(this.childValue);
  }
}

親コンポーネント側

parent.compoment.html
  <app-child
      (onChild)="onChildInParent($event)">
  </app-child>
parent.component.ts
export class ChildComponent {
  parentValue = "";

  onChildInParent(valueFromChild: string){
    this.parentValue = valueFromChild;
  }
}

参考

Angular 親コンポーネントから子コンポーネントにデータの渡し方
Angular 公式リファレンス Component interaction

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?