Angular реактивная форма Вводное представление с другим значением - PullRequest
0 голосов
/ 20 января 2020

У меня сложная форма с FormArray со многими различными FormGroups. Внутри одного типа formGroup у меня есть контроль со значением процентов. Мне нужно показать и отредактировать его значение в виде чисел от 1 до 100, и сохранить всю форму со значением квоты 0,1 - 1 (отправить на сервер). Я могу внести некоторые изменения в функцию store, но мне нужно проверить все элементы FormArray, если это formGroup, которую мне нужно изменить. Также мне нужно обновить его, когда я получу значение для patchValue для формы. Могу ли я различать вид и значение в контроле в реактивной форме?

1 Ответ

0 голосов
/ 20 января 2020

простой способ, используя [ngModel] и (ngModelChange)

<input [ngModel]="form.get('percent').value" 
   (ngModelChange)="this.form.get('percent').setValue((+$event)/100)
   [ngModelOptions]="{standalone:true}">

Ну, это для fomControl, но так как у вас есть formArray, я полагаю, вам нужно иметь функцию, которая возвращает formControl

getControl(index:number)
{
     return (this.form.get('nameOfArray') as FormArray)
               .at(index)
               .get('percent')
}

и используйте [ngModel]="getControl(i).value" и (ngModelChange)="getControl(i).setValue((+$event)/100)

помните, что formControl и formArray существуют, даже если нет ввода

...