子コンポーネントTS
import { Component, OnInit, Input, Output } from '@angular/core';
import { EventEmitter } from 'events';
export class ChildComponent implements OnInit {
@Output() OpenScheduleCall = new EventEmitter<boolean>();
onLog() {
this.OpenScheduleCall.emit(false);
}
}
親コンポーネントHTML:
<div [(hidden)]="OpenScheduleCall">
// content
</div>
<app-schedule-call *ngIf="!!OpenScheduleCall" [prospectid]='prospectid' [(OpenScheduleCall)]="OpenScheduleCall"></app-schedule-call>
子コンポーネントに値を設定していますが、変更は親コンポーネントに反映されていません
ただOutput
を双方向データバインディングに含めることはできません。また、()
を制限された関数の最後に追加します。
(OpenScheduleCall)="YourFunctionInParent($event)"
OpenScheduleCall
を子コンポーネントへの入力としてマークしていないため、まず最初にそれを行う必要があります。また、バナナを箱に入れて双方向バインディングを実現するには、@Output
が@Input
変数名で、接尾辞Change
が必要です。したがって、最初に変数OpenScheduleCall
を@Input
としてマークし、次に@Output
変数の名前を変更します。
export class ChildComponent implements OnInit {
@Input() OpenScheduleCall;
@Output() OpenScheduleCallChange = new EventEmitter<boolean>();
onLog() {
this.OpenScheduleCallChange.emit(false);
}
}
これで、双方向バインディングができました。
[(OpenScheduleCall)]="OpenScheduleCall"