我有一个来自父组件的组件。看起来是这样的:
export class AttributeComponent implements OnInit, OnChanges {
@Input() attribute: CharacterAttribute;
@Output() attributeChange = new EventEmitter<CharacterAttribute>();
ngOnChanges(changes: SimpleChanges): void {
this.attributeChange.emit(this.attribute);
}
}我使用此代码的目标是将对输入模型的任何更改发送回父程序。在父类中,我使用此代码创建实例:
<app-attribute [(attribute)]="character.str"></app-attribute>在组件中,对于模型的每个属性,我有以下代码:
<label>Base <input type="text" pInputText [(ngModel)]="attribute.base"></label>然而,ngOnChanges从不触发,绑定只是一种方式。我怎样才能使这成为双向绑定呢?
发布于 2018-08-13 20:36:21
NgOnChanges在所有其他钩子之前触发,前提是正确设置了@(),并且在父组件的DOM上附加了正确的属性。
建立单独的输入/输出流或使用subject或传递整个对象(由于传递了引用,您可以在两端自由修改其属性)。
https://stackoverflow.com/questions/51830056
复制相似问题