我有一个反应形式,有一个使用ng2-nouislider的范围滑块 . 它适用于所有精细和花花公子,但我希望滑块附带两个显示当前最小/最大值的文本输入字段,但也允许用户手动输入值 . 它还应该具有双向绑定,以便视图将使用任一方法更新 .

TS看起来像这样,表单有点嵌套:

this.myForm = this.formBuilder.group({
  ...,
  foo: this.formBuilder.group({
    rangeGroup: this.formBuilder.group({
      range: [[null, null], null]
    })
  }),
  ...,
});

HTML看起来像这样:

<div formGroupName="rangeGroup">
   <nouislider style="width: 100%" [config]="sliderConfig" formControlName="range"></nouislider>
    <div class="col-2">
      <input type="text" class="form-control">
    </div>
    <div class="col-2">
      <input type="text" class="form-control">
    </div>
</div>

我尝试使用带有文本输入的ngModel(指向范围数组索引),这对我来说在AngularJS之前有用,但是在这里我得到一个错误:

ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.

我还尝试使用myForm.get(...) . setValue([e.target.value,...])为文本输入创建一个change-event并手动更改表单值,但这种方法感觉不太好因为我必须手动验证值并更新视图 .