我有一个通过以下步骤定义的问题:
我在这里创建了一个堆栈闪电来说明此问题。 https://stackblitz.com/edit/angular-kbpx7r如果您输入99,然后再次输入99,您将看到父母和孩子不同步。您可以输入10以下的任意数字以使它们恢复同步,但是我的问题是我需要弄清楚如何始终保持它们同步。
答案 0 :(得分:0)
因此,您的问题如下:
第二次调用99时,parentValue始终设置为5。
所以对于孩子来说,没有变化。目前没有任何通过ngOnChanges的操作。
这就是为什么孩子第二次没有得到5。
尽管要确认我的意思,您可以测试:
if(newValue.value > 10){
this.parentValue = 4;
this.parentValue = 5;
}else{
this.parentValue = newValue.value;
}
然后您将打两个电话,然后进行更改。
答案 1 :(得分:0)
我在子组件的输入字段中添加了(更改)事件,并且看到它按预期运行。我看到之前未检测到更改。 (更改)事件现在对其进行跟踪。请尝试并分享反馈/建议。
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>