我有一个家长和一个孩子。如果子组件在内部更新其值,则无法从父组件更新值。
参见Stackblitz:https://stackblitz.com/edit/angular-ivy-tynepp中的示例。当子组件失去焦点时,我会触发一个事件,并且父组件重置子组件的值。但我认为,因为父级的"this.value“没有改变,所以更新不会触发子节点中的检测更改。
我怎样才能解决这个难题呢?
发布于 2020-06-03 00:23:27
如前所述,由于绑定值没有更改,因此不会触发更改检测。可以强制使用以下步骤更新数据绑定:
ChangeDetectorRef.detectChanges()constructor(private changeDetectorRef: ChangeDetectorRef) {}
resetValue() {
this.value = "____TempValue____";
this.changeDetectorRef.detectChanges();
this.value = "";
}有关演示,请参见这一堆闪电战。
发布于 2021-08-05 09:02:32
我为我的项目创建了一个指令,它非常容易使用
<ng-container *rerender='changingInput'>
this content will be re-rendered everytime `changingInput` changes
</ng-container>有关更多细节,请查看我的要旨。
发布于 2020-06-03 01:08:48
另一种更简单的方法是使用模板变量,如下面的示例所示:
parent.component.html
<app-my-child
#child
(lostFocus)="child.value = ''"></app-my-child>解决方案可用的这里。
https://stackoverflow.com/questions/62162006
复制相似问题