Как установить флажки и передать их в REST-запрос угловой 7 - PullRequest
0 голосов
/ 08 июля 2019

Я хочу добавить проверенные флажки в массив, который будет частью запроса вызова 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 (), который я пытался нажать на все элементы и удалить непроверенный элемент, но ничего не получилось

...