Так нельзя. Данные, которые отображаются в тимплейте, подразумеваются динамическими (условно, мне нужно выпонлять фильтрацию). В Обс не позволит мне в него новые значения положить, поэтому и пришлось к subject прибегнуть.
Ситуация могла быть другой, если бы можно было сделать из события клика другой обс и тогда уже через combineLatest смешивать их, а в тимплейте отображать результирующий обс. Но это тоже громоздко. Пойду наверное best practices гуглить по RxJS
Смотрите, у вас есть состояние вашего фильтра. Его мы храним в сабжекте. И есть удалённое состояние - это ваши данные. Про них надо знать две вещи:
1. Это состояние не реактивное, т.е. вам нужно его перезапрашивать в тот момент, когда вы решите, что пора.
2. У него есть параметр - это состояние вашего фильтра. В зависимости от него, данные будут разные.
Таким образом, ваши данные можно описать так:
data$ = filterState$.pipe(
switchMap(value => dataApi.getFiltered(value))
)
И тогда при каждом изменении состояния фильтра вы их будете перезапрашивать.