выход кроме subscribe() и присвоения в нем переменной типа Photo[] данных получаемых от сервера?
async pipe
*ngFor="let item of (items$ | async)"
а что такое items? где они возьмутся без подписки на обсервбл?
я привел пример как Observable<Array<T>> вывести через ngFor, я не собираюсь весь код писать
понял, мне этого достаточно. Я просто так не выводил никогда. Я не в том смысле, чтобы показать. Просто было инересно как это
спасибо, а как сравнить два Observable на то, что значения в них одинаковы?
Но ...они же асинхронны
дождаться пока придет ответ и сравнить?
Ты можешь их сравнить только в тик
Момент времени
Короче, объединить в один поток(merge/scan ..., combineLatest...) и сравнивать
ну у меня при нажатии на элемент идет запрос на сервер, если еще раз нажать, то впустую будет переприсвоен Observable, следовательно теги img заново будут выкачивать фото, а я не хочу такого
Как это реализовать в рамках вашей задачи не подскажу, а концепт описал выше
вы можете сравнить массивы (deep equality) перед тем как обновлять свойство компонента, хотя ангуляр возможно и сам достаточно умный чтобы лишний ререндер не делать, тут надо в сторону trackBy копать
deepEqual не помог, все равно думает что Observable разные
а если сработало нажатие, можно отключить возможность следующего нажатия, если данные в процессе получения, или если результат получен
А чего им быть одинаковыми
У вас на момент сравнения ньюФотос постоянно пустой.
не, тут именно чтоб не присваивало заново, если по факту содержимое не поменялось
а в каком виде приходят данные?
json массив
так вам value сравнивать надо
ну как я понимаю через zip() но не совсем понял как работает этот зип я ожидаю что подаю на вход 2 observable и лямбду, в которой пишу логику
грубо 1) 1 или 2 - на выбор 2) заверните в сабжект scan или pairwise и обойдетесь без локального свойства 3) при использовании варианта 2 (map), просто чтоб не дергать CD - не нужен scan или pairwise
с пунктом 3 соврал - нужен будет скан
при 2 и 3 также избавитесь от "прямой" подписки
это пока все сложно для меня, все эти реактивности по сути то и не нужны я то хотел получить с сервера массив ссылок, эти ссылки подставить в src по нажатию, если после этого еще раз нажать, то запрашивается с сервера опять массив ссылок, если он идентичный с первым, то присваивать не надо, а если отличаются, то перезагрузить фотки тк src поменялся
Вы не можете сесть за руль, не зная как открывается машина
согласен, но полностью учить ангуляр ради одного пет проекта для себя.. возможно есть курс в котором делают примерно тоже что и я, на актуальной версии ангуляра
Обсуждают сегодня