В моем классе ThreadService у меня есть функция getThreads()
, которая возвращает мне Observable<Thread[]>
со всеми моими потоками.
Теперь я хотел бы иметь другую версию моей функции с моими потоками, отфильтрованными повыбранная тема: функция getSelectedThemeThreads(theme: Theme)
.
Я пытался с операторами map
и filter
, но у меня появляется следующее сообщение об ошибке Property 'theme' does not exist on type 'Thread[]
.
Ниже кода, с которым я работаюна:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable, of } from 'rxjs';
import { catchError } from 'rxjs/operators';
import { Thread } from '../models/thread.model';
import { Theme } from '../models/theme.model';
@Injectable({
providedIn: 'root'
})
export class ThreadService {
private threadsUrl = 'api/threads';
constructor(private http: HttpClient) { }
getThreads(): Observable<Thread[]> {
return this.http.get<Thread[]>(this.threadsUrl);
}
getSelectedThemeThreads(): Observable<Thread[]> {
return this.http.get<Thread[]>(this.threadsUrl).pipe(
map(threads => threads),
filter(thread => thread.theme.id === theme.id)
);
}
Заранее благодарим за помощь.