Я хочу добавить проверенные флажки в массив, который будет частью запроса вызова REST.У меня есть 4 категории журналов, и я хочу, чтобы серверная часть отображала эту и эту категорию журналов на основе выбранных пользователем категорий.По умолчанию все они отмечены.
Мои флажки примерно такие:
<div class="custom-control custom-checkbox squaredThree" *ngFor="let
category of categories">
<input type="checkbox" class="custom-control-input" id="{{category.id}}"
(change)="uncheckChangeHandler($event)" checked>
<label class="custom-control-label" for="{{category.id}}" > {{category.name}} </label>
</div>
Мой файл .ts:
export class FilterBarComponent implements OnInit, OnDestroy {
filterParam: any = filterDataObject;
filtredLogs: Ilogs[];
form: FormGroup;
categories = [
{ id: '1', name: 'debug' },
{ id: '2', name: 'info' },
{ id: '3', name: 'warning' },
{ id: '4', name: 'error' }
];
constructor(private sharedService: SharedDataService, private
logsService: HttpClientTestService,
private formBuilder: FormBuilder) {
this.form = this.formBuilder.group({
categories: new FormArray([])
});
}
ngOnInit() {
this.filterParam.limit = this.selectedLimit;
this.filterParam.sort = this.selectedSort;
for (let i = 0; i <= this.categories.length; i++) {
this.filterParam.category.push(this.categories[i].name);
}
}
uncheckChangeHandler(event: any) {
// code to delete the unchecked item from category array
}
структура моего массива фильтров, котораябудет отправлено на сервер:
export const filterDataObject = [{
date: '',
className: '',
userName: '',
category: [],
limit: '50',
sort: 'acs'
}];
ошибка, которую я получил
ERROR TypeError: Cannot read property 'push' of undefined
Можете ли вы помочь мне написать содержимое ngOnInit (), чтобы поместить все категории в запроси содержимое метода uncheckChangeHandler (), который я пытался нажать на все элементы и удалить непроверенный элемент, но ничего не получилось