Angular 如何从服务中动态调用主题?
具有以下主题的服务Angular 如何从服务中动态调用主题?,angular,typescript,rxjs,Angular,Typescript,Rxjs,具有以下主题的服务 subjectOne$ = new Subject<Partial<boolean>>(); subjectTwo$ = new Subject<Partial<boolean>>(); subjectThree$ = new Subject<Partial<boolean>>(); subjectFour$ = new Subject<Partial<boolean>&
subjectOne$ = new Subject<Partial<boolean>>();
subjectTwo$ = new Subject<Partial<boolean>>();
subjectThree$ = new Subject<Partial<boolean>>();
subjectFour$ = new Subject<Partial<boolean>>();
我可以在next()中执行参数,但如何动态调用subjectXXXX$呢?我不理解这个问题,但我认为我们可以使用对象作为主题
subjects = {
1: new Subject<Partial<boolean>>(),
2: new Subject<Partial<boolean>>(),
....
}
onToggle(number: string) {
this.myService.subjects[number].next(/* whatever value */);
}
主题={
1:新主题(),
2:新主题(),
....
}
onToggle(编号:字符串){
this.myService.subjects[number].next(/*任意值*/);
}
您可以尝试在地图中管理主题并动态访问它们
subjectMaps: {[key: string]: Subject<Partial<boolean>>} = {
one : new Subject<Partial<boolean>>();
two : new Subject<Partial<boolean>>();
three: new Subject<Partial<boolean>>();
four : new Subject<Partial<boolean>>();
}
subjectMaps: {[key: string]: Subject<Partial<boolean>>} = {
one : new Subject<Partial<boolean>>();
two : new Subject<Partial<boolean>>();
three: new Subject<Partial<boolean>>();
four : new Subject<Partial<boolean>>();
}
subjectByKey(subjectKey: string): Subject<Partial<boolean>> {
return this.subjectMaps[subjectKey];
}
onToggle(number: string) {
this.myService.subjectByKey('one').next(this.selected[number]);
}