#javascript #angular #typescript
Вопрос:
У меня возникла проблема с тем, что я не могу присвоить выбранное значение полю formarray. Я использую ng-autocomplete
, когда выбираю значение и создаю консоль.журнал группы форм это выглядит так, как будто я что-то выбираю и сохраняю в соответствующем поле, но когда я отправляю, я делаю другую консоль.журнал и пуст!
это мой HTML
<fieldset formArrayName="material_guid" class="mt-4">
<fieldset name="quantites" *ngFor="let quantity of quantities.controls; let i = index" [formGroupName]="i">
<p>Material {{ i 1 }}</p>
<ng-autocomplete [data]="dataMaterial" [searchKeyword]="keywordMaterial" (selected)='selectEventMaterialArray($event,i)' [itemTemplate]="itemTemplate" [notFoundTemplate]="notFoundTemplate" class="mb-4" placeholder="Selecciona un material" >
</ng-autocomplete>
<ng-template #itemTemplate let-item>
<a [innerHTML]="item.nombre"></a>
</ng-template>
<ng-template #notFoundTemplate let-notFound>
<div [innerHTML]="notFound"></div>
</ng-template>
<input type="number" min="1" max="3" class="form-control mb-4 mt-4" placeholder="Minimo" formControlName="minimo">
<input type="number" min="1" max="3" class="form-control mb-4" placeholder="Maximo" formControlName="maximo">
<button (click)="removeQuantity(i)" class="btn btn-danger">Quitar material</button>
</fieldset>
</fieldset>
вот где я обнаруживаю, когда пользователь делает выбор
selectEventMaterialArray(item, index) {
this.quantities.controls[index].value.material = item.nombre
}
а вот моя группа форм и создание моего массива форм
kanbanForm = this.formBuilder.group({
kanban_nombre: ['', Validators.required],
ubicacion: ['', Validators.required],
ruta_guid: ['', Validators.required],
kanban_guid: ['', Validators.required],
material_guid: this.formBuilder.array([]),
active: ['Y'],
})
getNewId() {
this.currentStepId = 1;
return this.currentStepId;
}
get newQuantity(): FormGroup {
return this.formBuilder.group({
id: [this.getNewId()],
material: [''],
minimo: ['', Validators.required],
maximo: ['', Validators.required],
})
}
get quantities() : FormArray {
return this.kanbanForm.get("material_guid") as FormArray
}
addQuantity() {
this.quantities.push(this.newQuantity);
console.log(this.quantities.controls)
}
Я не знаю, в чем дело, надеюсь, кто-нибудь сможет мне помочь
Комментарии:
1. не используйте (выберите) событие для изменения значения FormControl, я полагаю, вы можете использовать
formControlName="material"
Ответ №1:
Я использовал этот пример. Это работает.
Комментарии:
1. Я видел этот пример раньше, но он не отвечает на мой вопрос/проблему, потому что я знаю, как узнать, когда я выбираю опцию, но я хочу знать, как добавить в мое поле индекса, потому что в этом у меня есть несколько ошибок
2. Где я могу проверить вашу проблему? Это на стекблитце?