Angular对数组进行排序会导致formGroup中的最后一个控件失效。
创始人
2024-10-24 15:31:42
0

解决这个问题的一种方法是使用Angular的FormArray来替代FormGroup中的数组,并在排序后重新建立表单控件。以下是一个示例代码:

import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, FormArray } from '@angular/forms';

@Component({
  selector: 'app-my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.css']
})
export class MyComponentComponent implements OnInit {
  myForm: FormGroup;

  constructor(private fb: FormBuilder) {}

  ngOnInit(): void {
    this.initializeForm();
  }

  initializeForm(): void {
    this.myForm = this.fb.group({
      myArray: this.fb.array([])
    });

    // 添加初始表单控件
    this.addFormControls();
  }

  addFormControls(): void {
    const controlArray = this.myForm.get('myArray') as FormArray;

    controlArray.push(this.fb.control('Value 1'));
    controlArray.push(this.fb.control('Value 2'));
    controlArray.push(this.fb.control('Value 3'));
  }

  sortArray(): void {
    const controlArray = this.myForm.get('myArray') as FormArray;

    // 对数组进行排序
    controlArray.controls.sort((a, b) => {
      if (a.value < b.value) {
        return -1;
      } else if (a.value > b.value) {
        return 1;
      } else {
        return 0;
      }
    });

    // 重新建立表单控件
    const sortedArray = this.fb.array(controlArray.controls.map(control => control.value));
    this.myForm.setControl('myArray', sortedArray);
  }
}

上述代码中,我们使用FormArray来代替FormGroup中的数组。在initializeForm方法中,我们初始化了myForm并添加了初始表单控件。在sortArray方法中,我们对数组进行了排序,并重新建立了表单控件。

请注意,在模板中使用myForm时,需要使用formArrayNameformGroupName来正确绑定和显示表单控件。

相关内容

热门资讯

黑科技攻略!(微扑克)透视辅助... 黑科技攻略!(微扑克)透视辅助机制,(wpk微扑克)一直真的有挂,2025新版教程(有挂技巧)是由北...
aapoker有外挂!wepo... aapoker有外挂!wepoke有软件吗,wpk俱乐部有ai吗,德州论坛(原本真的是有挂)是一款可...
黑科技好牌!(wPk)透视辅助... 黑科技好牌!(wPk)透视辅助挂,(wpK)一贯真的是有挂,新2025版(有挂技巧);原来确实真的有...
wepoke有挂!手机云扑克辅... 1、wepoke有挂!手机云扑克辅助,wepoke辅助器真的有用吗,微扑克教程(原生是有挂);详细教...
黑科技透明挂!(aa扑克)透明... 黑科技透明挂!(aa扑克)透明挂辅助app,(aApoker)一向是有挂,新2025教程(有挂神器)...
德州之星辅助!aapoker怎... 德州之星辅助!aapoker怎么进俱乐部,gg扑克发牌机制测试,专业教程(一向真的是有挂)1、很好的...
黑科技挂!(德州)外挂辅助软件... 此外,数据分析德州(德州)辅助神器app还具备辅助透视行为开挂功能,通过对客户德州透明挂的深入研究,...
aapoker透明挂!wpk有... aapoker透明挂!wpk有吗,aapoker到底有挂吗,第三方教程(竟然真的是有挂);1.aap...
黑科技辅助!(wepokE)软... 黑科技辅助!(wepokE)软件透明挂,(wepoKE)都是是真的有挂,攻略教程(有挂透视);科技安...
wepoke软件透明挂!德扑之... wepoke软件透明挂!德扑之星里面怎么隐藏入池率,wpk透视,揭秘攻略(其实存在有挂);最新版20...