как определить boolValue и включить поле ввода из formArray с помощью angular8 - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть formArray, который связывается с массивом динамических c объектов, поступающих из API. если boolValue имеет значение true, то поле ввода должно быть включено или отключено. но здесь я могу связать значения, но не могу включить / отключить поля ввода на основе boolValue.

Демо: DEMO

HTML:

 <div formArrayName="array">
    <div class="col" *ngFor="let value of values;let i = index">
      <div [formGroupName]="i">
        <div class="custom-control custom-switch mb-3">        
          <label class="custom-control-label">
            <input type="checkbox" formControlName="boolValue" (click)="selectedbool(i)" /> 
            {{value.label}}
          </label>
        </div>
        <input type="text" formControlName="datetime" (click)="dateRestriction(i)" class="onlyDateTime"/>
      </div>
    </div>
  </div>  

Ц:

this.form = this.FB.group({
          array: this.FB.array(
            this.values.map(x => this.FB.group({
              boolValue: this.FB.control(x.boolValue),
              datetime: this.FB.control(x.datetime)
            }))
          )
        }); 



values =  [ 
{
      id: 17,
      value: null,
      label: "Inactive From",
      datetime: null,
      boolValue: false
    },
    {
      id: 20,
      value: null,
      label: "No Access to System From",
      datetime: null,
      boolValue: false
    },
    {
      id: 23,
      value: null,
      label: "Restrict New Business",
      datetime: null,
      boolValue: true
    }];

1 Ответ

1 голос
/ 23 февраля 2020

Когда вы устанавливаете форму управления boolValue, используйте это:

boolValue: this.FB.control({
    disabled: !x.boolValue,
    value: x.boolValue,
})

https://angular.io/api/forms/FormControl

Вы можете проверить это здесь

...