コンポジション関係にあるコンポーネント間の操作
はじめに
Angularの2つのコンポーネントがコンポジション関係にあるときの操作についてです。
所有側コンポーネントをOwnerComponent、部品側コンポーネントをPartComponentとして記載します。
所有側から部品側へのデータの受け渡し
owner-component.html
<app-owner>
<!-- 部品側のプロパティと所有者側のプロパティを関連づける -->
<!-- リアルタイムに値が同期する -->
<app-part [partProperty]="ownerProperty"></app-part>
</app-ower>
owner-component.ts
export class OwnerComponent {
ownerProperty: string;
}
part-component.ts
export class PartComponent {
<!-- @Input()が必要 -->
@Input() partProperty: string;
}
所有側から部品側へのfunction呼び出し
owner-component.html
<app-owner>
<!-- #で任意の名前を付ける -->
<app-part #part></app-part>
</app-owner>
owner-component.ts
export class OwnerComponent {
// #で付けた名前をプロパティに関連づける
@ViewChild('part') private partComponent: PartComponent;
exampleFunction() {
// 部品側への呼び出し
this.partComponent.onReceiveEvent('foo');
}
}
part-component.ts
export class PartComponent {
onReceiveEvent(variable: string) {
// ...
}
}
部品側から所有側へのイベント通知
owner-component.html
<app-owner>
<app-part (voted)="onVoted($event)"></app-part>
</app-owner>
owner-component.ts
export class OwnerComponent {
onVoted(variable: string) {
}
}
part-component.ts
export class PartComponent {
@Output() voted = new EventEmitter<string>();
vote() {
const variable: string = '渡す値';
this.voted.emit(variable);
}
}
さいごに
役に立ちましたら、いいねをお願いします。
Author And Source
この問題について(コンポジション関係にあるコンポーネント間の操作), 我々は、より多くの情報をここで見つけました https://qiita.com/radiance1104/items/53477514ca7535c2d048著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .