#arrays #angular #typescript
#массивы #angular #машинописный текст
Вопрос:
Как я могу получить массив выбранных флажков? Все, что я получаю, возвращается true. Это мой код:
<form name="form" [formGroup]="form" (ngSubmit)="postData()">
<div *ngFor="let customers of customerslist$">
<div *ngFor="let item of customers.data">
{{ item.id }} <input type="checkbox" formControlName="company" value="{{ item.company }}">
</div>
</div>
<button class="btn btn-primary" [disabled]="!form.valid"><i class="fa fa-user"></i> send</button>
</form>
Компонент:
form: FormGroup;
constructor(private customerdataService: CustomerDataService,private router: Router,private formBuilder:FormBuilder) {
this.form = this.formBuilder.group({
company: []
});
}
Как выбрать выбранные элементы в postData()
postData() {
const selectedCustomer = this.form.value.company
console.log(selectedCustomer);
}
Ответ №1:
В вашем коде у вас есть только 1 formControlName=»company». Несмотря на то, что вы создали несколько флажков ввода, все они имеют одно и то же имя — «company». Я считаю, что именно по этой причине вы получаете только одно значение вместо массива. Я думаю, вы можете попробовать использовать item.company внутри вашего «formControlName», чтобы иметь разные имена. Например, этот.
{{ item.id }} <input type="checkbox" formControlName="item.company" value="{{ item.company }}">
Комментарии:
1. Да, это необходимо. они используются как массив