Я пытаюсь внедрить Angular Observable Data Services в свой код, но я немного сбит с толку этим подходом.
У меня есть следующая модель данных: Тема --- один ко многим ---> Категория
Тема
export class Theme {
_id: string;
name: string;
description: string;
iconCode: string;
categories: Category[];
createdAt: Date;
updatedAt: Date;
Категория
export class Category {
_id: string;
name: string;
description: string;
createdAt: Date;
updatedAt: Date;
Я написал этот код для службы наблюдаемых данныхТема:
export class ThemeStoreService {
private _themes: BehaviorSubject<Theme[]> = new BehaviorSubject<Theme[]>([]);
private dataStore: {
themes: Theme[]
};
constructor(private themeBackendService: ThemeBackendService) {
this.dataStore = { themes: [] };
this._themes = new BehaviorSubject<Theme[]>([]);
}
get themes() {
return this._themes.asObservable();
}
И я задаюсь вопросом о написании Службы Наблюдаемых Данных Категории, которая связана с Темой.В моем проекте я использую панель навигации, которая представляет собой список тем, содержащих подсписок категорий.Я хотел бы обновить список и подсписок после создания новой категории.
- Нужно ли мне также использовать BehaviorSubject для категории?
- Как мне это сделать?связь между этими двумя объектами?
Ниже приведен мой действительный код для Службы наблюдаемых данных категории:
export class CategoryStoreService {
private _categories: Observable<Category[]>
private dataStore: {
categories: Category[]
};
constructor(private themeStoreService: ThemeStoreService) {
this.dataStore = { categories: [] };
this._categories = this.themeStoreService.themes.pipe(
map(themes => {
themes.forEach(theme => {
theme.categories = this.dataStore.categories;
})
})
)
}
get categories() {
return this._categories;
}
Любой отзыв или пример, чтобы помочь мне?
Заранее спасибо за помощь.