HI Я работаю над Angular 6 Project простой список задач - мой сценарий таков: у меня есть группы задач на боковой панели навигации, когда выбирается одна из них, обновляется todo.component для отображения этой групповой задачи
У меня есть служба Return Observable Object «Groups Class» в виде ReplaySubject , чтобы предоставить к ней общий доступ и перебросить все компоненты в моем приложении, где оно работает, но у меня есть одна проблема, когда мне нужно использовать этот объект в firestoreФункция запроса для получения некоторых данных не работает ??
вот мой код:
1- GlobaleVariable Class:
sharedCategory$ = new ReplaySubject<Groups>(1);
updateCategoryValue(g: Groups) {
return this.sharedCategory$.next(g);
}
2 - событие навигационной панели OnClick:
onSelect(grouup: Groups): void {
this.GV.updateCategoryValue(grouup);
this.GV.sharedCategory$.subscribe(g => this.selectedGroup = g);
}
служба 3-todo
note GV - это объект из GlobaleVariable , вот проблема, мне нужно установить параметр id = текущее выбранное значение идентификатора groub, когда я устанавливаюстатическое число работает, но когда я пишу это, как сделано ниже, это не ??
constructor(private todoDataService: TodoDataService,
private groupservice: GroupsDataService,
private afs: AngularFirestore, public GV: GlobalVariblesClass
) {
// alert("todo");
//Get shared Group Object
this.GV.sharedCategory$.subscribe(g => {
if (g != null) {
debugger;
this.GV.sharedCategory$.subscribe(c => { this.selectedGroup = c;
if (this.selectedGroup != null) {
alert('next');
this.nextgroup(g.id);
return;
}
}
});
//---------set group id = 1 by default --------
this.todogroup$ = new BehaviorSubject(1);
this.newtodos$ = this.todogroup$.pipe(
switchMap(group =>
this.afs.collection<Todo>('todos', ref =>
ref.where('group', '==', group))
.valueChanges())
);//end pipe
}
//------update groupid------------
nextgroup(id: number) {
debugger;
alert("id is :" + id);
return this.todogroup$.next(id);
}
Я спросил befoо совместном объекте в этом вопросе , так что вы можете увидеть скриншот из моего приложения благодаря