Size: a a a

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

2020 February 14

KT

Kirill Torgashin in Angular - русскоговорящее сообщество
Ну, если это BehaviorSubject, то он отдает последнее состояние сразу.
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Kirill Torgashin
Ну, если это BehaviorSubject, то он отдает последнее состояние сразу.
О, какие люди...
источник

KT

Kirill Torgashin in Angular - русскоговорящее сообщество
Я слежу за тобой просто 🙂
источник

B

Bretbas in Angular - русскоговорящее сообщество
Каким образом можно в Guard проверить, что присутствует первый сегмент url, скажем /admin
источник

EK

Egor Kozhanov in Angular - русскоговорящее сообщество
Bretbas
Каким образом можно в Guard проверить, что присутствует первый сегмент url, скажем /admin
if this.router.url.contains("admin")

наверное что-то типа этого
источник

П

Пёс Цифрового Сопротивления in Angular - русскоговорящее сообщество
Dilame Bowzee
А есть понимание, как может происходить такое, что обращение к async переменной происходит до того, как заэмитилось первое значение?
ну выше про BehavuorSubject написали. Еще ReplaySubject может быть с таким эффектом. Но сюда по твоему коду, валиться оно выше, а не в чаилде. закомментируй чаилд ради интереса
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Пёс Цифрового Сопротивления
ну выше про BehavuorSubject написали. Еще ReplaySubject может быть с таким эффектом. Но сюда по твоему коду, валиться оно выше, а не в чаилде. закомментируй чаилд ради интереса
Да ну что же я BehavuorSubject от Subject не отличу)
Оно явно валиится ДО первого эмита, здесь по сути даже не важен тип сабжекта
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Закомментировал, ошибка осталась
источник

П

Пёс Цифрового Сопротивления in Angular - русскоговорящее сообщество
Dilame Bowzee
Это слишком сложно будет) Я докопался до корня проблемы, кажется.
Вот так выглядит шаблон родителя (вся суть в первых 4-х строках)
ты пакуешь async в объект. и потом к нему обращаешься. я думаю отсюда null и получается
ngIf="{}" у тбя всегда тру вернет. это же объект
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Пёс Цифрового Сопротивления
ты пакуешь async в объект. и потом к нему обращаешься. я думаю отсюда null и получается
ngIf="{}" у тбя всегда тру вернет. это же объект
В остальных случаях такая конструкция отрабатывает хорошо.
Да и почему null? должно быть undefined по такой логике
источник

П

Пёс Цифрового Сопротивления in Angular - русскоговорящее сообщество
vars.undefinde.xx не лучше ведь
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Мне такой подход здесь порекомендовали чуть выше
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Переслано от Yuri Katkov
Типа так:
ngIf=„{myvar: fn()} as vars“
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Переслано от Yuri Katkov
Дурацкий хак, потому что такой ngIf всегда будет верным, что извращает суть директивы. Но других проблем я за год выявить не смог.
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Переслано от Dilame Bowzee
Имеется в виду вот так
*ngIf="{user: (user$ | async)} as variables"

?
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Переслано от Yuri Katkov
да, я так всегда делаю, если у меня куча обзерваблов
источник

П

Пёс Цифрового Сопротивления in Angular - русскоговорящее сообщество
для меня лично это очень странное использование async
источник

П

Пёс Цифрового Сопротивления in Angular - русскоговорящее сообщество
что ты хочешь сделать?
источник

DB

Dilame Bowzee in Angular - русскоговорящее сообщество
Пёс Цифрового Сопротивления
что ты хочешь сделать?
Да в общем-то я просто хочу понять, откуда там null)
Ошибку я костылём подпёр, жить можно, но убрать его было бы приятней
источник

IB

Igor Bodnar in Angular - русскоговорящее сообщество
Dilame Bowzee
Да в общем-то я просто хочу понять, откуда там null)
Ошибку я костылём подпёр, жить можно, но убрать его было бы приятней
У тебя пайп возвращает значение синхронно, а поток асинхроннный, что должен выдать пайп пока ничего не эмитилось? Вот он и выдаёт null, это дефолтное поведение которое всегда было  https://github.com/angular/angular/blob/85b551a38829f90d4b87cd2a6fa506dfdeed2ec9/packages/common/src/pipes/async_pipe.ts#L72
источник