【问题标题】:Iterate FormArray whilst getting index在获取索引的同时迭代 FormArray
【发布时间】:2021-08-04 10:42:14
【问题描述】:

我找不到在 FormArray for 循环中检索索引的方法

for (let formElementRegistry of this.formElementRegistry().controls) {
  const formElementConfigurationGroup = formElementRegistry.get('formElementConfiguration') as FormGroup;
  const formElementId = formElementRegistry.get('formElement')?.get('id')?.value;

  const newFormElementRegistry = new FormGroup({
    formElement: new FormControl(formElementId),
    formElementConfiguration: formElementConfigurationGroup
  })

  this.formElementRegistry().removeAt(0);
  this.formElementRegistry().push(newFormElementRegistry);
}

formElementRegistry 的循环中似乎没有任何可用的东西可以让我访问索引

我可以启动一个手动计数器,let i = 0;(例如)并在每个循环上递增,但似乎应该有一些东西可供我使用

我预计: for (let [index, formElementRegistry] of this.formElementRegistry().controls) {

for (let {index, formElementRegistry} of this.formElementRegistry().controls) {

可能有效,但如果我尝试这样做会遇到错误

【问题讨论】:

    标签: angular angular-reactive-forms


    【解决方案1】:

    For..of 循环不提供索引。如果需要索引,最好使用简单的for循环:

    for (let i = 0; i < this.formElementRegistry().controls.length; i++) {
      const formElementRegistry = this.formElementRegistry().controls[i];
      ...
    }
    

    【讨论】:

    • 应该对 for - for (let i = 0; i &lt; this.formElementRegistry().controls.length; i++) { 进行小修改注意this.formElementRegistry().controls.length 后面的分号而不是逗号。我敢肯定这只是你的错字
    • 是的。谢谢,已解决。
    猜你喜欢
    • 2023-04-04
    • 2013-10-03
    • 2019-07-26
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 2011-05-12
    相关资源
    最近更新 更多