169 похожих чатов

Нужна ваша критика: https://stackblitz.com/edit/angular7-rxjs-l6ecg2?file=src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fapp.component.html,src%2Fapp%2Fapp.component.css

39 ответов

5 просмотров

тап-тап-тап-тап-тап-тап-там. напевать как мелодию «в пещере горного короля»

Oleh-P Автор вопроса
Eugene Udalov 🇷🇺
тап-тап-тап-тап-тап-тап-там. напевать как мелодию ...

как иначе сделать я не понимаю. сабджект где-то нужно пробрасывать

может нахуй и сразу сигналы?

Oleh-P Автор вопроса
Evgheni Чернявский
может нахуй и сразу сигналы?

может. мне бы добиться такого поведения как сейчас есть - только сделать это качественно без тапов

Evgheni Чернявский
ммм какие и зачем?

computed в таком виде максимально уёбищен, точно придумают свои пайпы

웃 K K
computed в таком виде максимально уёбищен, точно п...

да вроде норм, но спорить не буду, на релизе многие потыкают и будет общее мнение

Oleh-P Автор вопроса
Sergei Sergeevich
И без подписки

немного отрефакторил уже. можно что-то еще улучшить?

Наверное. описать все декларативно без конструктора и fetchdata, и выкинуть asObservable тк нет в них смысла тут

Oleh-P Автор вопроса
Oleh P
чем fetch дата плох?

Да можно и оставить, только убрать сайдэффект с tap

Oleh-P Автор вопроса
Sergei Sergeevich
Да можно и оставить, только убрать сайдэффект с ta...

а вот как - я с этими тапами меня тут уже троллят)

Oleh P
чем fetch дата плох?

Индикацию в loading$ можно упростить используя кастомный оператор indicate вот отсюда https://nils-mehlhorn.de/posts/indicating-loading-the-right-way-in-angular/

Oleh P
а вот как - я с этими тапами меня тут уже троллят)

И правильно, они там никчему как и подписка

Sergei Sergeevich
И правильно, они там никчему как и подписка

shareReplay не забудь повесить на поток с данными, что бы исбежать повторных вызовов

Oleh-P Автор вопроса

от подписик не понимаю как избавиться. перенес ее в шаблон - перестало работать

Oleh P
от подписик не понимаю как избавиться. перенес ее ...

Попробуй подебажить, должно быть что то типо этого: data$=load$.pipe(switchMap(p=>fetchData(p), shareReplay(...)) *ngIf="data$ | async as data"

Oleh-P Автор вопроса
Sergei Sergeevich
Попробуй подебажить, должно быть что то типо этого...

https://stackblitz.com/edit/angular7-rxjs-l6ecg2?file=src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fapp.component.html что-то сломалось - почему подписка которая в была в компоненте перестает работать в шаблоне?

Oleh P
https://stackblitz.com/edit/angular7-rxjs-l6ecg2?f...

Так isVisible никогда не триггернется потому дата асинк на отработает потому что этот кусок шаблона не отрендерится потому что isVisible никогда не триггернется...

Oleh-P Автор вопроса
Sergei Sergeevich
Так isVisible никогда не триггернется потому дата ...

точно. тогда в шаблоне data$ нужно в самый вверх вынести а все остальное внутри

Oleh P
точно. тогда в шаблоне data$ нужно в самый вверх в...

Ага, и переделать логику isVisible, убрав сайдэффект из потока с данными

Oleh-P Автор вопроса
Sergei Sergeevich
Ага, и переделать логику isVisible, убрав сайдэффе...

хм - тогда блок не покажется пока $data не пришла...а мне бы сразу показать блок а внутри data$

Oleh P
хм - тогда блок не покажется пока $data не пришла....

Ну придумай чего нить, вариантов много

Oleh-P Автор вопроса
Sergei Sergeevich
Ну придумай чего нить, вариантов много

что можно придумать - задумка была что visible эти занимается (

Конечно, потомучто шаблон с асинк не рендерится

Oleh-P Автор вопроса
Sergei Sergeevich
Конечно, потомучто шаблон с асинк не рендерится

может тогда способ который когда-то я делал и его затролили *ngIf="{visible: visible | async, data: data$ | async}" ?

Oleh-P Автор вопроса
Sergei Sergeevich
[class.hidden]=!isVisible

не врублюсь на какой контейнер это навесить? https://stackblitz.com/edit/angular7-rxjs-l6ecg2?file=src%2Fapp%2Fapp.component.ts,src%2Fapp%2Fapp.component.html

Oleh P
может тогда способ который когда-то я делал и его ...

Да сделай так и не парься. Только добавь as ctx, что не повторятся с асинк

Oleh-P Автор вопроса
Sergei Sergeevich
ngIf={...} as ctx ngIf=ctx.isVisible

можно вас попросить прямо в шаблоне прописать. туплю - не понимаю где и

Oleh P
можно вас попросить прямо в шаблоне прописать. туп...

На самом деле вам просто нужно отделить isVisible от потока с данными, переключать его не в тэп а отдельно, по клику или что там, тогда он не будет зависеть от подписки на data

Oleh-P Автор вопроса
Sergei Sergeevich
На самом деле вам просто нужно отделить isVisible ...

вот так вроде сработало: <ng-container class="card" *ngIf="{ visible: isVisible$ | async, data: data$ | async, loading: loading$ | async } as data" > <div class="card" *ngIf="data.visible"> <div *ngIf="data.loading; else dataBlock">Загрузка данных...</div> <ng-template #dataBlock> <div *ngIf="data.data" class="data">{{ data.data.name }}</div> <div *ngIf="data.imageUrl" class="image">{{ data.imageUrl }}</div> <div *ngIf="data.fields" class="fields">{{ data.fields | json }}</div> </ng-template> </div> </ng-container>

Oleh-P Автор вопроса
Sergei Sergeevich
Ну блииин, с телефона не удобно

благодарю тебя за помощь! все получилось)

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
думаешь я не смогу также сделать? мне это просто не удобно
int 💳 𝙖𝙞𝙧 𝙗𝙞𝙜 𝙗𝙤𝙗 🔫 check bio / spam block / AFK / nohello.com / GMT+3
9
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
3
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
Карта сайта