我有一个正在使用的父组件。看起来像这样:
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永远不会触发,绑定只是一种方法。我该如何进行双向绑定?
答案 0 :(得分:1)
NgOnChanges在所有其他挂钩之前触发,前提是您的 @Inputs()已正确设置,并且您已在父组件中的组件DOM上附加了正确的属性。>
建立单独的输入/输出流或使用主题或传递整个对象(由于传递了引用,因此您可以在两端自由地修改其属性)。