HI,我正在从事 Angular 6项目 简单的待办事项列表-我的情况是侧面导航栏上有待办事项组 当选择其中一个todo.component更新以显示此分组任务时
我有一个“ Groups Class”返回可观察对象的服务作为 ReplaySubject 以进行共享和访问,将所有组件扔到了我的应用程序中,但它仍在工作,但是我有一个问题需要使用Firestore Query函数中的对象获取一些不起作用的数据?
这是我的代码:
1- GlobaleVariable类:
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);
}
三项服务
注释 GV 是 GlobaleVariable 中的对象 这是我需要设置id参数=当前选定的groub id值的问题 当我设置一个静态数字时,它可以工作,但是当我写一个静态数字时,就像下面所做的那样,不是??
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);
}
我之前曾问过关于Question上共享对象的信息,所以您可以从我的应用中查看屏幕截图 谢谢