我有一个可以从父母和孩子编辑的变量 .
parent.html:
<div *ngIf="editEnabled">
<mat-icon (click)="disableEdit()">cancel</mat-icon>
</div>
<child [(editEnabled)]="editEnabled"></child>
parent.ts:
export class ParentComponent {
editEnabled: boolean;
disableEdit(){
this.editEnabled = false;
}
}
Child.html:
<div *ngIf="!editEnabled">
<mat-icon (click)="enableEdit()">settings</mat-icon>
</div>
child.ts
private _editEnabled: boolean;
@Input()
set editEnabled(value: boolean) {
this._editEnabled = value;
}
get editEnabled(): boolean {
return this._editEnabled;
}
enableEdit(){
this.editEnabled = true;
}
但我不能在两个组件之间通信editEnabled .
我的错误在哪里?
2 回答
定义双键变量时,需要使用变量名定义一个@ Input-decorator:
和一个@ Output-decorator,变量名称和
Change
之后,因为这个发出变量的变化事件:然后在更改子组件内的变量时,调用
this.editEnabledChange.emit(true)
. 您与[(...)]
的双重绑定是正确的!如果您不想在每次更改变量
correct
时添加editEnabledChange
-Emitter,您可以写: