Size: a a a

2021 March 24

ОС

Олександр Савуловськ... in Angular Kyiv
Добрый день, как можно сделать без двух switchMap?
this.loginService.user$ - BS;
this.mainService.getData - http;

this.vm$ = this.reloadTable$.pipe(
     startWith(1),
     switchMap(() => this.loginService.user$),
     switchMap(({ userId }) => this.mainService.getData(userId as number))
   );
источник

D

Dima in Angular Kyiv
withLatestFrom
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Dima
withLatestFrom
this.vm$ = this.reloadTable$.pipe(
     startWith(1),
     withLatestFrom(this.loginService.user$),
     switchMap(({ userId }) => this.mainService.getData(userId as number))
   );
Так?
источник

D

Dima in Angular Kyiv
підозрюю можна замінити switchmap на map
источник

D

Dima in Angular Kyiv
але загалом так
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Dima
але загалом так
Спасибо
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Есть такой код:
this.errTable$ = this.reloadErrTable$.pipe(
 startWith(1),
 map(() => ({ isLoading: true })),
 switchMap(() => this.sprService.getErrLogPeriod()),
 map((data) => ({ data, isLoading: false })),
 catchError((err) => of({ isLoading: false, err }))
);

Хочу когда isLoading == true - показывать в шаблоне spinner.
Подскажите почему не работает?
источник

Denis Мовляйко... in Angular Kyiv
tap() ?
источник

Denis Мовляйко... in Angular Kyiv
а что вы мапите? имею в виду первый map()
источник

DT

Denchik Tymokhin in Angular Kyiv
Олександр Савуловський
Есть такой код:
this.errTable$ = this.reloadErrTable$.pipe(
 startWith(1),
 map(() => ({ isLoading: true })),
 switchMap(() => this.sprService.getErrLogPeriod()),
 map((data) => ({ data, isLoading: false })),
 catchError((err) => of({ isLoading: false, err }))
);

Хочу когда isLoading == true - показывать в шаблоне spinner.
Подскажите почему не работает?
потому что код в мапах существует сам по себе, просто так, если его нахрен удалить, ничего не поменяется....
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Denchik Tymokhin
потому что код в мапах существует сам по себе, просто так, если его нахрен удалить, ничего не поменяется....
Варианты решения только через tap? Делать BS для isLoading?
источник

DT

Denchik Tymokhin in Angular Kyiv
Олександр Савуловський
Варианты решения только через tap? Делать BS для isLoading?
есть вариант на похожие вопросы включать гугл и искать самописный стейт, или работать через интерсепторы чекая лоадинг
источник
2021 March 25

KN

Konstantin Nosov in Angular Kyiv
такой вот вопрос - а кто-то использует GraphQL с Angular. А то что-то я столкнулся с описанием что типа не удобно и т.п. Интересует:
- кодогенерация из схемы в ts
- работа без Apollo
- вообще поддержка TS

мы используем GraphQL с реактом где мы выписываем и типизируем каждый конкретный запрос, но в Angular хотелось бы завести генерацию типов на основании схем graphql.
Есть может примеры\опыт у кого-то?
источник

Sergey Фrolov in Angular Kyiv
Konstantin Nosov
такой вот вопрос - а кто-то использует GraphQL с Angular. А то что-то я столкнулся с описанием что типа не удобно и т.п. Интересует:
- кодогенерация из схемы в ts
- работа без Apollo
- вообще поддержка TS

мы используем GraphQL с реактом где мы выписываем и типизируем каждый конкретный запрос, но в Angular хотелось бы завести генерацию типов на основании схем graphql.
Есть может примеры\опыт у кого-то?
Почему не Аполло?
источник

Sergey Фrolov in Angular Kyiv
Хотя может там кодогенерацию можно и без этого сделать.
https://www.graphql-code-generator.com/docs/plugins/typescript-apollo-angular
источник

KN

Konstantin Nosov in Angular Kyiv
Это была стартовая точка, но она так себе код генерирует
источник

Sergey Фrolov in Angular Kyiv
Konstantin Nosov
Это была стартовая точка, но она так себе код генерирует
Хм. А что не так? Я правда работал только с Аполло, но мне кажется там можно подкрутить шаблоны, чтобы не было привязки.
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Добрый день.
Подскажите как сделать, чтобы при нажатии на кнопку Reload появлялся isLoading: true?
https://stackblitz.com/edit/angular-ivy-adrsnn?file=src%2Fapp%2Fwrap%2Fwrap.component.ts
источник

OZ

Oleg Zmiiuk in Angular Kyiv
ребятки, никто не сталкивался с задачей реализовать mentions?
чтоб можно было ввести @, увидеть список юзеров для тега, выбрать, и потом каждый юзер подсвечивался как ссылка в сообщении
по такому же принципу как это делается в джире или телеге
нашёл простую либу https://github.com/dmacfarlane/angular-mentions, но она не покрывает все кейсы
источник

DG

Danil Gudz in Angular Kyiv
Олександр Савуловський
Добрый день.
Подскажите как сделать, чтобы при нажатии на кнопку Reload появлялся isLoading: true?
https://stackblitz.com/edit/angular-ivy-adrsnn?file=src%2Fapp%2Fwrap%2Fwrap.component.ts
дочерний элемент никак не может знать когда “запрос” начался, он только знает когда ему что-то новое придет
логику с isLoading$ нужно перенести в AppComponent

  this.vm$ = this.reloadTrigger$.pipe(
    startWith(null),
    switchMapTo(this.mainService.getData().pipe(
      map(data => ({isLoading: false, data})),
      startWith({isLoading: true, data: null})
    )),
  )

https://stackblitz.com/edit/angular-ivy-2yj3rv?file=src/app/wrap/wrap.component.html
источник