在排序数组后使用 setValue 形成控件时出错

Error when using setValue to form control after sorted array

我遇到了这个错误:

错误错误:必须为索引处的表单控件提供一个值:1。

我正在用 Angular9 做一个应用程序,问题出在 Typescript 上。

以下代码有效:

this.registros.controls.arrayProcedimientos.setValue(convert.arrayProcedimientos);

但是如果我对数组进行排序然后执行 setValue 我不知道会发生什么但不起作用,例如:

convert.arrayProcedimientos.sort(function(a,b){
          return a.fechaInicioProcedimiento > b.fechaInicioProcedimiento;
        });

//setValue of the sorted array
this.registros.controls.arrayProcedimientos.setValue(convert.arrayProcedimientos);

psd:我尝试执行 patchValue(),它不会引发错误,但问题是该对象是数组的数组。因此,在唯一字段上执行 patchValue 效果很好,但在子数组上是拖钓(字面意思)。

感谢您的关注和帮助,如果需要图片之类的可以随时询问。

很棒的社区:)

我认为首先您需要修复它们的排序方式,但不确定它如何为您工作。它一定会给你排序时的编译时错误。

而不是这个

convert.arrayProcedimientos.sort(function(a,b){
          return a.fechaInicioProcedimiento > b.fechaInicioProcedimiento;
     });

使用这个

 convert.arrayProcedimientos.sort(function(a,b){
              return a.fechaInicioProcedimiento - b.fechaInicioProcedimiento;
         });

然后

this.registros.controls.arrayProcedimientos.setValue(convert.arrayProcedimientos);

应该可以。

这就是我要求您更改排序语法的原因 TypeScript sorting an array