【发布时间】:2017-08-28 12:09:58
【问题描述】:
试图让两种方式绑定工作,但在检查异常后更改表达式。当模式更改为取消并且我想将值重置为空时,我得到了异常。我认为这是因为我在具有不同值的更改周期内发出但不知道如何避免?
<edit-field [mode]="mode" [(field)]="field"></edit-field>
我的组件是:
export class EditFieldComponent implements OnChanges {
@Input('mode') mode: string;
@Input('field') field: string;
@Output('fieldChange') fieldChange: EventEmitter<string> = new EventEmitter<string>();
ngOnChanges() {
if(this.mode == 'cancel'){
this.field = "";
this.fieldChange.emit("");
}
}
}
【问题讨论】:
-
一种解决方法是手动解耦 2 路绑定:将 Input 绑定到组件中,并将组件中的 Eventemitter 绑定到输出,但不要使用“同一个”。当想要 2 路绑定到必须操作传入数据的组件时,这是最简洁的方法。