角反应形式:-在动态行中动态填充输入

时间:2018-12-11 19:07:03

标签: angular angular-reactive-forms

我正在开发一个Register模块,用户可以在其中添加多个渠道,例如google,yahoo,outlook和custom。

问题:-

  1. “自定义网址”的OnSelection字段将为空,并且在其他域url字段的情况下将被预填充。
  2. 如果您在域中选择“自定义”,则“ UR1”字段必须为空白且可编辑。
  3. 如果我单击添加更多,则表单需要为空白,就像页面加载时一样。

我在https://angular-db4rzu.stackblitz.io创建了虚拟表格。寻找帮助。

1 个答案:

答案 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