Kendo:在顶部将FormGroup插入FormArray

Roh*_*dal 11 kendo-grid angular angular-reactive-forms formarray formgroups

问题陈述 :

在下面的stackblitz演示中,我能够FormGroup通过单击Add按钮并(blur)从一个控件触发事件以更新共享该控件的另一个控件的值,在网格的开头动态插入动态对象rowIndex。现在的问题是,如果我在多个新添加的对象上插入多个formGroups并触发(blur)事件,FormGroups它将更新其他控件的值以及具有不同的值rowIndex

重现此问题的步骤:

  • 打开下面的演示链接。
  • 通过单击添加按钮添加多行(2行)。
  • 在第二个新添加的行的名称字段中输入值,然后将焦点对准。
  • 它会在两个新添加的行中更新年龄字段,而不是仅在第二行中更新。

Stackblitz演示: https ://stackblitz.com/edit/angular-oitz5j-4uezqr

要求:

跳出特定行的任何名称字段,同一行的“年龄”字段应显示一个随机数,而不会影响其他行。

到目前为止我尝试了什么?

  • 试图使用Array unshift()方法但出现错误

    类型“ FormArray”上不存在属性“ unshift”

  • 尝试使用FormArray.insert()方法。如果我们要FormGroup在特定索引处添加一个,它将可以工作。但是它无法FormGroupsFormArray动态顶部插入多个。

更新:如果没有Kendo Grid,上述问题可以正常工作。请检查以下演示。

演示: https : //stackblitz.com/edit/angular-oitz5j-2a31gs

github / stackoverflow中的相关问题:

https://github.com/angular/angular/issues/16322

Angular-表单数组推送特定索引

注意:如果我们要将控件添加到Grid的末尾,则它的工作原理很简单。请检查下面的演示,该演示在最后添加控件时效果很好。

演示: https : //stackblitz.com/edit/angular-oitz5j-aszrjq

Afs*_*sar 6

对于那些想要在 FormArray 中动态插入元素的人,请使用索引为 0 的 Insert。

this.formName.controls.FieldNameArray.insert(0,[...])
Run Code Online (Sandbox Code Playgroud)

https://angular.io/api/forms/FormArray#insert


Man*_*zzo 0

问题是剑道网格。你一遍又一遍地踩在其数据源的索引 0 上,谁知道他会在内部做什么来显示数据。但事实是它没有使用表单数组值。如果您从剑道网格数组中取出,则可以正常工作,或者如果您在 onFocusOut 方法的末尾添加控制台日志, console.log(this.createForm.get("items").value);您将看到 formArray 的值很好。

如果您需要使用 yes 或 yes 剑道网格。阅读以下文档:

https://www.telerik.com/kendo-angular-ui/components/grid/editing/editing-reactive-forms/

我看到的示例表明您无法从外部处理表单。你需要使用kendo grid提供的方法。因为 kendo grid 并不真正显示 fromArray 值