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 ответов

25 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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
Ну блииин, с телефона не удобно

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта