Я работаю над Angular 7, и я хотел бы применить несколько фильтров к списку объектов, которые я получаю от моего бэкенда.
Объекты относятся к типу, который я называю "CV".
Внутри резюме находятся другие объекты, такие как описанные ниже.
CV {
employee: Employee;
certifications: Certification[];
}
Employee {
empId: number;
empAgency: string;
empBu: string;
}
Моя основная проблема заключается в том, что мне нужно отфильтровать список CV по свойствам вложенных объектов.
Этот урок очень вдохновил меня на применение нескольких фильтров: https://angularfirebase.com/lessons/multi-property-data-filtering-with-firebase-and-angular-4/.
Я пробовал что-то подобное в машинописи.
employees: CV[];
filteredEmployees: CV[];
//array I use to filter
filters = {};
//properties I wanna filter by
empAgency: string;
empBu: string;
//standard entry to delete a filter property value
private DefaultChoice: string = "DefaultChoice";
private applyFilters() {
if (this.filteredEmployees.length === this.employees.length) {
this.filteredEmployees = _.filter(this.filteredEmployees, _.conforms(this.filters));
} else {
this.filteredEmployees = this.employees;
this.filteredEmployees = _.filter(this.filteredEmployees, _.conforms(this.filters));
}
}
filterExact(property: string, property2: string, rule: any) {
if (rule ==='DefaultChoice') {
delete this.filters[property][property2];
this.filters[property] = [];
this.filters[property][property2] = null;
}
else {
this.filters[property] = [];
this.filters[property][property2] = val => val === rule;
}
this.applyFilters();
}
Но он не работает с вложенными свойствами. Моя проблема в том, что я не понимаю, как правильно передать своей функции свойство вложенного объекта.
Кто-нибудь может помочь?
Помогая, я также включаю любые другие предложения о том, как связать несколько фильтров на вложенных объектах в Angular (с / без lodash). Я все еще новичок в этой области, поэтому не стесняйтесь указывать мне правильное направление!