Size: a a a

Советский Angular

2021 July 04

SS

Sergei Sergeevich in Советский Angular
Items$ = this._itemsSubject.asObservable()
источник

LI

Lorem Ipsum in Советский Angular
метод в сервисе
источник

RV

Roman Vinokurov in Советский Angular
Я начало прослушал. А значение когда емититится? На ngOnInit ?
источник

LI

Lorem Ipsum in Советский Angular
а. пробовал
источник

M

Mixer in Советский Angular
а кто его вызывает?
источник

LI

Lorem Ipsum in Советский Angular
на действие пользователя. в другом компоненте
источник

LI

Lorem Ipsum in Советский Angular
событие в другом компоненте
источник

M

Mixer in Советский Angular
а ты уверен что событие происходит и метод вызывается?
источник

RV

Roman Vinokurov in Советский Angular
а пробовал через sharereplay?
источник

LI

Lorem Ipsum in Советский Angular
да. 100%
источник

LI

Lorem Ipsum in Советский Angular
?
источник

RV

Roman Vinokurov in Советский Angular
Проверить гипотезу что Асинк пайп подписывается не после эмита
источник

LI

Lorem Ipsum in Советский Angular
не только он не реагирует. обычная подписка тоже: в компоненте на онинит делал для проверки. при этом значения эмитятся всегда после того как этот компонент был создан
источник

LI

Lorem Ipsum in Советский Angular
такую загадку даже жак фреско не сочинит
источник

RV

Roman Vinokurov in Советский Angular
А сможешь код показать ?
источник

SS

Sergei Sergeevich in Советский Angular
Попробуй и правда на стакблитс воспроизвести
источник

LI

Lorem Ipsum in Советский Angular
да. но только сниппеты. стакбиз долго
источник

LI

Lorem Ipsum in Советский Angular
export  class ChannelAnalysisComponent {
 public readonly currentChannel$ = this.currentChannel.channel$;
 public readonly nowBeingComparedChannels$ = this.compareMenuForm.nowBeingCompared$;
 public constructor(
   private readonly currentChannel: CurrentUsingChannelByQueryService,
   private readonly compareMenuForm: CompareMenuFormService
 ) {}
}
источник

LI

Lorem Ipsum in Советский Angular
@Injectable()
export class CompareMenuFormService {
 public get nowBeingCompared$(): Observable<UsingChannel[]> {
   return this.nowBeingComparedMulticast$;
 }
 public readonly form: { [index: number]: UsingChannel|undefined } = {}
 private readonly nowBeingComparedMulticast$ = new ReplaySubject<UsingChannel[]>();
 public selectChannel(channel: UsingChannel): void {
   this.form[channel.index] = channel;
   this.emitNowBeingCompared();
 }
 public unSelectChannel(channel: UsingChannel): void {
   this.form[channel.index] = undefined;
   this.emitNowBeingCompared();
 }
 private emitNowBeingCompared(): void {
   const beingCompared = Object.values(this.form).filter(value => value !== undefined) as UsingChannel[];
   this.nowBeingComparedMulticast$.next(beingCompared);
 }
}
источник

LI

Lorem Ipsum in Советский Angular
что интересно. если subject заменить на behaviorsbuject, то изначальное значение пройдёт. а дальше глохнет
источник