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

This.Http.Get<Photo[]>(...) возвращает Observable<Photo[]>,но использовать в *ngFor я могу только Photo[] какой

выход кроме subscribe() и присвоения в нем переменной типа Photo[] данных получаемых от сервера?

30 ответов

3 просмотра

async pipe

*ngFor="let item of (items$ | async)"

Stanislav
*ngFor="let item of (items$ | async)"

а что такое items? где они возьмутся без подписки на обсервбл?

Oleksandr 🤖
а что такое items? где они возьмутся без подписки ...

я привел пример как Observable<Array<T>> вывести через ngFor, я не собираюсь весь код писать

Stanislav
я привел пример как Observable<Array<T>> вывести ч...

понял, мне этого достаточно. Я просто так не выводил никогда. Я не в том смысле, чтобы показать. Просто было инересно как это

Захар- Автор вопроса
Stanislav
*ngFor="let item of (items$ | async)"

спасибо, а как сравнить два Observable на то, что значения в них одинаковы?

Захар- Автор вопроса
Andrei
Но ...они же асинхронны

дождаться пока придет ответ и сравнить?

Захар
дождаться пока придет ответ и сравнить?

Ты можешь их сравнить только в тик

Захар
спасибо, а как сравнить два Observable на то, что ...

Короче, объединить в один поток(merge/scan ..., combineLatest...) и сравнивать

Захар- Автор вопроса
Andrei
Ты можешь их сравнить только в тик

ну у меня при нажатии на элемент идет запрос на сервер, если еще раз нажать, то впустую будет переприсвоен Observable, следовательно теги img заново будут выкачивать фото, а я не хочу такого

Захар
ну у меня при нажатии на элемент идет запрос на се...

Как это реализовать в рамках вашей задачи не подскажу, а концепт описал выше

Захар
ну у меня при нажатии на элемент идет запрос на се...

вы можете сравнить массивы (deep equality) перед тем как обновлять свойство компонента, хотя ангуляр возможно и сам достаточно умный чтобы лишний ререндер не делать, тут надо в сторону trackBy копать

Захар- Автор вопроса
Stanislav
вы можете сравнить массивы (deep equality) перед т...

deepEqual не помог, все равно думает что Observable разные

Захар
ну у меня при нажатии на элемент идет запрос на се...

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

Andrei
А чего им быть одинаковыми

У вас на момент сравнения ньюФотос постоянно пустой.

Захар- Автор вопроса
Иван
а если сработало нажатие, можно отключить возможно...

не, тут именно чтоб не присваивало заново, если по факту содержимое не поменялось

Захар- Автор вопроса
Захар- Автор вопроса
Stanislav
так вам value сравнивать надо

ну как я понимаю через zip() но не совсем понял как работает этот зип я ожидаю что подаю на вход 2 observable и лямбду, в которой пишу логику

Захар
ну как я понимаю через zip() но не совсем понял ка...

грубо 1) 1 или 2 - на выбор 2) заверните в сабжект scan или pairwise и обойдетесь без локального свойства 3) при использовании варианта 2 (map), просто чтоб не дергать CD - не нужен scan или pairwise

Andrei
screenshot грубо 1) 1 или 2 - на выбор 2) заверните в сабжек...

с пунктом 3 соврал - нужен будет скан

Andrei
screenshot грубо 1) 1 или 2 - на выбор 2) заверните в сабжек...

при 2 и 3 также избавитесь от "прямой" подписки

Захар- Автор вопроса
Andrei
при 2 и 3 также избавитесь от "прямой" подписки

это пока все сложно для меня, все эти реактивности по сути то и не нужны я то хотел получить с сервера массив ссылок, эти ссылки подставить в src по нажатию, если после этого еще раз нажать, то запрашивается с сервера опять массив ссылок, если он идентичный с первым, то присваивать не надо, а если отличаются, то перезагрузить фотки тк src поменялся

Захар
это пока все сложно для меня, все эти реактивности...

Вы не можете сесть за руль, не зная как открывается машина

Захар- Автор вопроса
Andrei
Вы не можете сесть за руль, не зная как открываетс...

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

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

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

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
75
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Как добавить ссылку в Быстрый доступ в Проводнике windows 10? Нашёл, как на power shell сделать, но может есть способ через Дельфи?
А
31
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
@rouse_79 а ты не знаешь простого способа определить что приложение запущено из под среды delphi?
Михаил
14
Обязательно ли смена методологии обучения алфавиту при смене алфавита(реформе письменности) - нет. А при смене глиненых табличек на попирус, нужно ли менять методологию обучен...
Spiker01
8
Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), ...
Evg Resh
19
а китайский фольц такой же как немецкий? а то я вижу китайские черри через год эксплуатации -- ну эээ оно такое...
Vyacheslav Olkhovchenkov
13
Карта сайта