В моем приложении у меня есть два комбинированных списка в компоненте.
Их значения по умолчанию null
.
При выборе периода или пользователя значение отправляется в магазин.
Это позволяет использовать период и выбранного пользователя в разных компонентах.
Combobox.component TO Store:
onSelectedWalletsPeriod(period: Period) {
this.store.setSelectedWalletsPeriod(period);
}
onSelectedWalletsUser(user: User) {
this.store.setSelectedWalletsUser(user);
}
Магазин:
export class MystoreComponentStore {
private selectedWalletsPeriodSubject = new BehaviorSubject<Period>(null);
private selectedWalletsUserSubject = new BehaviorSubject<User>(null);
public selectedWalletsPeriod$ = this.selectedWalletsPeriodSubject.asObservable();
public selectedWalletsUser$ = this.selectedWalletsUserSubject.asObservable();
constructor() {}
setSelectedWalletsPeriod(period: Period) {
this.selectedWalletsPeriodSubject.next(period);
this.selectedWalletSubject.next(null);
/# DEBUG #/
console.log('selectedPeriod:', period);
}
setSelectedWalletsUser(user: User) {
this.selectedWalletsUserSubject.next(user);
this.selectedWalletSubject.next(null);
/# DEBUG #/
console.log('selectedUser:', user);
}
}
Store TO Result.component:
export class ResultComponent implements AfterViewInit {
selectedWalletsPeriod: Period = null;
selectedWalletsUser: User = null;
constructor(public store: MystoreComponentStore) { }
ngAfterViewInit() {
this.store.selectedWalletsPeriod$.subscribe(period=> this.selectedWalletsPeriod = period);
this.store.selectedWalletsUser$.subscribe(user=> this.selectedWalletsUser = user);
}
}
Чтобы отобразить список второго компонента, мне нужно выбрать период И пользователя.
До этого момента все работает отлично.
Но то, что я хотел бы сделать, это выполнить функцию, когда пользователь И точка выбраны.
Эта функция также будет выполняться при изменении значения одного из двух комбинированных списков.
Эта функция позволит мне получить список кошельков из моей базы данных на основе периода и пользователя.
Я не знаю, как это сделать. Если у вас есть идея, мне интересно.
Вот небольшой пример: Stackblitz ЗДЕСЬ
Заранее спасибо.