我正在开发一个Register模块,用户可以在其中添加多个渠道,例如google,yahoo,outlook和custom。
问题:-
我在https://angular-db4rzu.stackblitz.io创建了虚拟表格。寻找帮助。
答案 0 :(得分:1)
在您的项目中,您正在形成一种严重的循环,即您要进行表单更改,然后根据发射来更新FormControl
值。
基本上,您将更改表单中的值,它将通过scmTypeCheck()
订阅触发valueChanges
,这将设置新值,然后通过valueChanges
发出另一个更改并触发{ {1}}一次又一次...
然后单击scmTypeCheck()
会使情况变得更糟,因为循环呈指数增长,最终超过了调用堆栈的限制。
在我的Stackblitz示例中,我用
Add More Row
上的valueChanges
事件替换了selectionChange
订阅...这可以确保没有循环,并且仅更新mat-select
的值一次。
我还用以下内容替换了整个FormControl
逻辑。
scmTypeCheck()
Stackblitz
https://stackblitz.com/edit/angular-b7bjj6?embed=1&file=src/app/app.component.ts