Size: a a a

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

2020 February 04

J💖

JSON Jenny 💖 in Angular - русскоговорящее сообщество
JSON Jenny 💖
Но если хошь, смотри. У тебя есть один сабскрайб, который шлёт запрос за данными с сервера.
Он шлёт его при первой прогрузке компонента, при прокрутке, при сортировке, при удалении, при введении значений в поиск и при добавлении фильтров.
query$
deleteEvent$
filters$
pagination$
sort$

Добавляешь каждому какое надо преобразование, потом всех в combineLatest и подписываешься на это.
Можешь сделать объединения до, чтобы в конце просто иметь один объектик.
Фильтры и поиск можно выделить в один обзервабл, скролл(пагинация) + сортировка могут быть вместе. Можно ещё эти два объединить вместе и сделать listChanges$, а потом к нему добавить crud экшоны.
Но это какой-то оверхед. Хотя да, мало кода и вроде симпотично будет
Все манипуляции с изменением скролла, сбросом пагинации в ноль и сохранение ее с небольшим сдвигом, делается выше в tap. Иначе подписок будет больше, чем две.
Можно ещё разбить по смыслу на компоненты и кидать в них преобразования на верхнем уровне
источник

VB

Vladimir Belonozhkin in Angular - русскоговорящее сообщество
Дмитрий
Canvas. Куча библиотек есть на эту тему
const printContainer = document.createElement('div');
   console.log('Print Container = ', printContainer);
   printContainer.id = 'print-container';

   printContainer.innerHTML = printText;

   const doc = new jsPDF();
   doc.fromHTML(printText, 20, 20);
   doc.addPage();

   window.open(doc.output('bloburl', ''), '_blank');
источник

VB

Vladimir Belonozhkin in Angular - русскоговорящее сообщество
Открывает только двоичные данные
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
JSON Jenny 💖
Все манипуляции с изменением скролла, сбросом пагинации в ноль и сохранение ее с небольшим сдвигом, делается выше в tap. Иначе подписок будет больше, чем две.
Можно ещё разбить по смыслу на компоненты и кидать в них преобразования на верхнем уровне
Нене, тут и без тапа получилось обойтись
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
JSON Jenny 💖
Но если хошь, смотри. У тебя есть один сабскрайб, который шлёт запрос за данными с сервера.
Он шлёт его при первой прогрузке компонента, при прокрутке, при сортировке, при удалении, при введении значений в поиск и при добавлении фильтров.
query$
deleteEvent$
filters$
pagination$
sort$

Добавляешь каждому какое надо преобразование, потом всех в combineLatest и подписываешься на это.
Можешь сделать объединения до, чтобы в конце просто иметь один объектик.
Фильтры и поиск можно выделить в один обзервабл, скролл(пагинация) + сортировка могут быть вместе. Можно ещё эти два объединить вместе и сделать listChanges$, а потом к нему добавить crud экшоны.
Но это какой-то оверхед. Хотя да, мало кода и вроде симпотично будет
Так оверхед или мало кода и симпатично?
источник

Кm

Кирилл mrDoode in Angular - русскоговорящее сообщество
Всем привет, помогите плиз с задачей
Мне нужно сделать два разных запроса в разные места, и когда они будут выполнены — обработать полученную информацию с обоих запросов.
Я создал сервис, в нём описал две функции, возвращающие Observable. Как мне дальше быть?
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
По-моему, это просто называется реактивный стиль. Хорош конкуренто в подписках менять поля компонента и надеяться, что все обойдётся. Хорош лепить везде subscribe блоки и надеяться, что они не будут накапливаться. Вот тебе потоки, комбинируй, меняй их, а снаружи должны быть только итоговые результаты
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Кирилл mrDoode
Всем привет, помогите плиз с задачей
Мне нужно сделать два разных запроса в разные места, и когда они будут выполнены — обработать полученную информацию с обоих запросов.
Я создал сервис, в нём описал две функции, возвращающие Observable. Как мне дальше быть?
Они друг от друга зависят?
источник

Кm

Кирилл mrDoode in Angular - русскоговорящее сообщество
Yuri Katkov
Они друг от друга зависят?
Запросы друг от друга не зависят, но выполнение кода нужно продолжать только в том случае, когда два запроса успешно выполнятся и данные будут получены
источник

J💖

JSON Jenny 💖 in Angular - русскоговорящее сообщество
Yuri Katkov
Так оверхед или мало кода и симпатично?
Слишком сложно получается потом в это все вникать и делать изменения. Единоразово симпотично.
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
Кирилл mrDoode
Запросы друг от друга не зависят, но выполнение кода нужно продолжать только в том случае, когда два запроса успешно выполнятся и данные будут получены
тебе нужен forkJoin
источник

Кm

Кирилл mrDoode in Angular - русскоговорящее сообщество
Спасибо
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
вот тут прикольная напоминалка про операторы: https://rxjs-dev.firebaseapp.com/operator-decision-tree
источник

Кm

Кирилл mrDoode in Angular - русскоговорящее сообщество
Прикольно
источник

YK

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

YK

Yuri Katkov in Angular - русскоговорящее сообщество
а вот это - самые упоротые уроки по Rx
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
полезность подтвеждена наличием на рутрекере)
источник

AR

Anton Rozdobudko in Angular - русскоговорящее сообщество
Всем привет.
Подскажите пожалуйста варианты с решением задачи.
С бекенда получаю данные, скажем, некий текст и дату его создания. В шаблоне эти данные вывожу, но необходимо проверять, если дата создания больше чем 30 дней, то подсвечивать текст красным цветом.
Для этого нужно сделать директиву, которая будет брать дату и сверять с текущей? И если условие выполняется - добавлять некий класс?
источник

G

Galeups in Angular - русскоговорящее сообщество
всем привет, подскажите, как из приходящего массива создать поток, чтобы это был список объектов?
источник

YK

Yuri Katkov in Angular - русскоговорящее сообщество
JSON Jenny 💖
Слишком сложно получается потом в это все вникать и делать изменения. Единоразово симпотично.
вот интересно эту грань нащупать и оформить в мануал-гайдлайн
источник