Я пытаюсь создать функцию поиска, которая возвращает массив наблюдаемых объектов для совпадений с поисковым термином в Angular 6 по нескольким свойствам объекта.
В настоящее время мой объект имеет 3 свойства, и с помощью http-клиента я могу искать только одно свойство.
Object.name или object.id. Я получил это далеко, изменяя учебник по туру героев на угловом веб-сайте. Чтобы связать мою цель с учебником по героям, я хочу найти героя по идентификатору, имени и, в конечном итоге, по другим свойствам.
В настоящее время у меня есть 3 строковых массива, каждый с именем объекта, идентификатором и другим свойством. Я также сделал функцию, которая создает массив объектов путем объединения строковых массивов.
Я не знаю, является ли это даже лучшим способом выполнения этой задачи, я изначально работаю с таблицей Excel и пытаюсь создать фиктивную базу данных с ее данными. Мне сказали превратить данные в файл json и сохранить их в папке с активами.
searchPaints(term: string): Observable<Paint[]> {
if (!term.trim()) {
// if not search term, return empty paint array.
return of([]);
}
return this.http.get<Paint[]>(`${this.paintsUrl}/?name=${term}`)
.pipe(
tap(_ => this.log(`found paints matching "${term}"`)),
catchError(this.handleError<Paint[]>('searchPaints', []))
);
}
это пример кода, я могу изменить запрос get на
this.http.get<Paint[]>(`${this.paintsUrl}/?id=${term}`)
и я могу получить результаты по идентификатору, но объект рисования со временем будет иметь много других свойств.
Я хочу, чтобы он функционировал так, что если я буду искать по любому свойству, он выполнит поиск по каждому свойству краски и выдаст объединенные результаты.
Я изучал forkjoin, но пока что ничего не заработало.