什么样的设计模式可以应用于形状变化被消除的角度组件,以避免丢失变化事件



我在Angular 14应用程序中遇到了一个令人沮丧的问题,我只能假设这个问题是由一些基本的设计缺陷引起的,从而导致复杂性。

想象一下,该应用程序允许用户在问卷中的问题之间导航,每个页面都有一个表格,允许用户根据该表格输入数据。文本类型的输入字段使用以下代码取消弹出:-

this._formGroupChangedSubscription = this.formGroup.valueChanges
.pipe(debounceTime(400), distinctUntilChanged())
.subscribe(() => {
this.onValueChanges();
});

这很好,直到你尝试用魔鬼般的输入,在输入框中输入一些文本,然后很快点击下一个转到下一个问题。数据捕获组件因问题类型而异,因此第一个组件被销毁,订阅随后在获得执行机会之前被销毁。

如果是组件销毁问题,请将订阅移动到服务或立即在Destroy钩子上发出this.formGroup

ngOnDestory(): void {
this.onValueChanges();
}

最新更新