我有一个可以从父项和子项编辑的变量。
Pr.HTML:

 <div *ngIf="editEnabled">
  <mat-icon (click)="disableEdit()">cancel</mat-icon>
</div>

<child [(editEnabled)]="editEnabled"></child>

帕伦茨:
export class ParentComponent {

   editEnabled: boolean;

   disableEdit(){
     this.editEnabled = false;
   }
}

Child.html:
 <div *ngIf="!editEnabled">
  <mat-icon (click)="enableEdit()">settings</mat-icon>
</div>

孩子们
private _editEnabled: boolean;

@Input()
 set editEnabled(value: boolean) {
  this._editEnabled = value;

}
get editEnabled(): boolean {
 return this._editEnabled;
}

enableEdit(){
     this.editEnabled = true;
}

但我无法在两个组件之间进行editenabled通信。
我的错误在哪里?

最佳答案

在定义双绑定变量时,需要使用变量名定义一个@input decorator:

@Input() editEnabled: boolean;

还有一个@output decorator,变量名在其后面,因为这一个发出变量的更改事件:
@Output() editEnabledChange: EventEmitter<boolean> = new EventEmitter<boolean>();

然后在更改子组件中的变量时,调用Change。您与this.editEnabledChange.emit(true)的双重绑定是正确的!

10-02 11:42