我有一个问题由以下步骤定义:
我在这里创建了一个stackblitz来说明这个问题。 https://stackblitz.com/edit/angular-kbpx7r如果再次输入99然后再输入99,您将看到父母和孩子不同步。您可以输入10以下的任何数字以使它们恢复同步但我的问题是我需要弄清楚如何让它们始终保持同步。
我将(更改)事件添加到子组件中的输入字段,我看到它按预期工作。我看到之前没有发现变化。 (更改)事件现在跟踪它。请尝试分享反馈/建议。
child.component.html
<p>
Keep Number under 10<br>
<input id="{{id}}" [(ngModel)]="value" (blur)="emitValue($event)" (change)="emitValue($event)" type="text"><br>
The child value is: {{value}}
</p>
所以,你的问题如下:
当您第二次调用99时,parentValue始终设置为5。
所以对孩子来说,没有变化。目前没有任何东西可以通过ngOnChanges。
这就是孩子第二次没有获得5分的原因。
为了确认我,你可以测试:
if(newValue.value > 10){
this.parentValue = 4;
this.parentValue = 5;
}else{
this.parentValue = newValue.value;
}
然后你将有两个电话,所以改变。