Javascript 无法绑定到角度组件的引导模式中动态添加的输入

Javascript 无法绑定到角度组件的引导模式中动态添加的输入,javascript,angular,forms,data-binding,angular-reactive-forms,Javascript,Angular,Forms,Data Binding,Angular Reactive Forms,首先,我看不出模态与这个问题有什么关系,因为它实际上在这个组件的代码中,而不是一个孩子。不过,这是一种模式,以防万一 我选择不使用FormArray,因为我需要跟踪可能添加到单独对象中的选择,所以我只是为控件创建唯一ID并将它们添加到FormGroup。我可以访问ts代码中的控件、设置值、获取值等,但是表单没有绑定,我不知道为什么不能 我可以在这个模式表单中有未知数量的项,每个项都有一个选择器下拉列表来选择一个属性,然后输入来修改一些数据。输入可以是不同的类型,因此需要根据选择器的选择添加和绑定

首先,我看不出模态与这个问题有什么关系,因为它实际上在这个组件的代码中,而不是一个孩子。不过,这是一种模式,以防万一

我选择不使用FormArray,因为我需要跟踪可能添加到单独对象中的选择,所以我只是为控件创建唯一ID并将它们添加到FormGroup。我可以访问ts代码中的控件、设置值、获取值等,但是表单没有绑定,我不知道为什么不能

我可以在这个模式表单中有未知数量的项,每个项都有一个选择器下拉列表来选择一个属性,然后输入来修改一些数据。输入可以是不同的类型,因此需要根据选择器的选择添加和绑定

<form [formGroup]="multiEditFormGroup" novalidate>
  <div *ngFor="let item of multiEditSelections; let i = index">
    <div>
      <mdb-select [options]="availablePropsSelect"
        placeholder="Choose property to edit"
        class="colorful-select dropdown-main"
        (selected)="multiEditSelectProp(item.selectorId, $event)"></mdb-select>
      <label>Property to edit</label>
    </div>

    <div>
      <div>
        <input mdbActive
           type="text"
           class="form-control"
           [formControlName]="item.controlId" />
       </div>
     </div>
   </div>
 </form>
登录到控制台显示正在将项添加到FormGroup,但绑定没有发生在DOM上。例如,我可以向输入中添加一个keyup事件处理程序,并在已经创建的表单控件中设置值,然后更新表单组。但是,前端中添加的任何输入都不会更新FG,因为它显然没有绑定。这是时间问题还是因为controlId稍后会更新?我在更新正在迭代的数组之前创建FormControl


哦,我在控制台中没有发现这方面的错误。

我认为您需要进行以下更改:

[formControlName]="item.controlId"
需要:

formControlName="{{item.controlId}}"

这是我尝试过的众多组合中的一种,但都无济于事。还有其他想法吗??谢谢并替换此行this.multiEditFormGroup.addControlselectorId,this.propSelector;使用此选项:this.multiEditFormGroup.addControlselectorId,new FormControl;this.multiEditFormGroup.getselectorId.setValuethis.propSelector;我想我不知道这是什么。。。所以,如果设定值不是初始值,那就不要做设定值。谢谢,凯文。我遗漏了propSelector,因为我在那里没有问题。它只是一个FormControl,用于属性选择器下拉列表。因为我是通过所选事件来处理它的,所以我甚至没有尝试绑定它。它是为用户创建的输入,用于为问题所在的选定属性输入值。看起来很简单,我不明白为什么没有绑定。您是否对我最初发布的以及this.multiEditFormGroup.addControlselectorId、new FormControl进行了更改;更改?请尝试在添加控件时重置表单this.multiEditFormGroup.reset。谢谢您的建议,John,但是不行,这也不行-你能在电脑上复制这个吗
formControlName="{{item.controlId}}"