Size: a a a

Angular - русскоговорящее сообщество

2021 June 25

OP

Oleg P in Angular - русскоговорящее сообщество
У меня есть сабжект:

   textLayers$ = new BehaviorSubject<TreeNode[]>([]);

И другой поток:

this.State.changeTextLayers$.pipe(debounceTime(200)).pipe(mergeMap(this.mapState.textLayers$)).subscribe((_) => {
  // TODO
});

Пытаюсь смержить их чтобы вытащить данные из второго потока.

Получаю ошибку:

Argument of type 'BehaviorSubject<TreeNode[]>' is not assignable to parameter of type '(value: void, index: number) => ObservableInput<any>'.
 Type 'BehaviorSubject<TreeNode[]>' provides no match for the signature '(value: void, index: number): ObservableInput<any>'
источник

OP

Oleg P in Angular - русскоговорящее сообщество
Так не ругается. Но и не пушит ничего:

           .pipe(mergeMap(this.mapState.textLayers$.asObservable))
источник

VM

Vadim Malovaniy in Angular - русскоговорящее сообщество
так а как ты применяешь миксины? и что за ошибка?
источник

ЕП

Егор Платонов... in Angular - русскоговорящее сообщество
При инициализации БехавиорСабджект  для начала советую явно указать тип массива. ([ ] as TreeNode[ ])
источник

o

outoftimer in Angular - русскоговорящее сообщество
источник

o

outoftimer in Angular - русскоговорящее сообщество
источник

o

outoftimer in Angular - русскоговорящее сообщество
источник

o

outoftimer in Angular - русскоговорящее сообщество
компонент здоровый, сорян(
источник

VM

Vadim Malovaniy in Angular - русскоговорящее сообщество
в mergeMap нужно передавать функцию
источник

ЕП

Егор Платонов... in Angular - русскоговорящее сообщество
Так у него там КБ есть , нет?
источник

o

outoftimer in Angular - русскоговорящее сообщество
а вот ошибка
источник

OP

Oleg P in Angular - русскоговорящее сообщество
getTextLayers(): Observable<any> {
       return this.mapState.textLayers$.asObservable();
   }

       .pipe(
               tap((e) => console.log(e)),
               mergeMap(this.getTextLayers),
           )
источник

VM

Vadim Malovaniy in Angular - русскоговорящее сообщество
что за КБ ?
источник

OP

Oleg P in Angular - русскоговорящее сообщество
проще тогда заюзать map и вернуть this.mapState.textLayers$.getValue()
источник

ЕП

Егор Платонов... in Angular - русскоговорящее сообщество
Колбэк функция я имею ввиду у него там вроде есть.
источник

VM

Vadim Malovaniy in Angular - русскоговорящее сообщество
нету. mergeMap(this.mapState.textLayers$))
источник

M

Maks in Angular - русскоговорящее сообщество
Действительно, оказалось что в примере используется старая версия метода. Погуглил, прошерстел и нашёл их на гитхабе где они описал актуальные изменения. Так что спасибо за наводку, осталось только разобраться как это дело с промисом законектить.
источник

DS

Dmitry Skibin in Angular - русскоговорящее сообщество
Всем привет. Вопрос по typescript, можно ли как то сделать так, чтобы при вызове конструктора класса без параметров поля инстанса это класса инициализировались дефолтными значениями автоматом?
источник

A

Alexandr in Angular - русскоговорящее сообщество
Добрый день. Нужна Ваша помощь. Есть чекбокс и селект, это все поля формы. Когда чекбокс фолс, нужно селекту установить атрибут disabled = true, а когда чек бокс тру, то соответственно и селект disabled = false? Создал переменную isChecked = false и в инициализации формы прописал
this.fb.group({
         id: [null],
         name: ['time_mobile'],
         value: [{value: 0, disabled: !this.isChecked}]
       })
источник

A

Alexandr in Angular - русскоговорящее сообщество
Как теперь изменяя чекбокс менять этот атрибут?
источник