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

23 просмотра

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

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

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

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Карта сайта