Size: a a a

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

2021 April 16

ЕП

Егор Платонов... in Angular - русскоговорящее сообщество
Ребят, есть вопрос по реализации. Делаю корзину на сайте, на локальное хранилище записываю ID-товаров которые юзер добавил в корзину. Делаю так, чтобы после обновления сессии мы могли элементы корзины выгрузить из хранилища и ему(юзеру) не пришлось заново ее собирать. Добавление товаров в корзину сделано с помощью потока объектов. Только дело в том, когда я делаю localStorage.setItem("basketItem", this.obsevable.getValue()) у меня все нормально - хранятся товары. А если юзер обновит страницу или перезайдет, то при следующей попытки пополнить корзину - она обновится, так как данные в потоке после обновления сессии обнулились. Как решить можно?
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Скорее так; при авторизации вы также отсылаете с логином/паролем данные об устройстве, если все хорошо, то добавляете к пользователю новое устройство. А потом с этой инфой делаете что хотите
Я пользовался jwt access+refresh токенами, реализовал удаленную деактивацию сессии
источник

D

Dmitry in Angular - русскоговорящее сообщество
ну отослал да, но мне же надо это устройство запомнить. я же должен на нем какие-то данные оставить, чтобы в след раз его идентифициовать
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Вы все верно в прошлый раз написали: генерируете guid, храните и на сервере, и на клиенте. По этому id и идентифицируете устройство
источник

D

Dmitry in Angular - русскоговорящее сообщество
спасибо
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Это бизнес-логика, тут фреймворк и даже язык ни при чем.
Просто опишите все юзкейсы, когда вам надо сбрасывать корзину и когда нет. Потом спокойно реализуйте
источник

A

Andrey in Angular - русскоговорящее сообщество
Использовать ngx-IndexedDB например.
источник

M

Maksim in Angular - русскоговорящее сообщество
ну очевидно что при загрузке страницы нужно читать localstorage и писать сохраненные товары в хранилище
но зачем добавление сделано через поток?
источник

ЕП

Егор Платонов... in Angular - русскоговорящее сообщество
Мне посоветовали сделать так.
источник

M

Maksim in Angular - русскоговорящее сообщество
спрашивается, зачем что-то делать, если не понимаешь зачем это делается)
источник

ЕП

Егор Платонов... in Angular - русскоговорящее сообщество
А какой вариант реализации ты бы использовал?
источник

BB

Bogdan Bida in Angular - русскоговорящее сообщество
А зачем вообще хранить корзину локально у юзера? Не лучше ли хранить это на бэке в бд?
источник

M

Maksim in Angular - русскоговорящее сообщество
например, если пользователь не авторизован, или  если в магазине вообще не предусмотрена регистрация/авторизация
источник

AK

Anton K. in Angular - русскоговорящее сообщество
если не авторизован, то вязатся к куке
источник

M

Maksim in Angular - русскоговорящее сообщество
корзина - сервис
- список продуктов в корзине - behaviorsubject с изначальным значением из localstorage
- добавление/удаление продукта через - behaviorsubject.next()
- где-нибудь (можно в том же сервисе) подписаться на этот behaviorsubject и сохранять в localstorage содержимое корзины (то есть сохраняется не отдельный basketItem, а basket целиком)

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

BB

Bogdan Bida in Angular - русскоговорящее сообщество
А, действительно)
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
Народ подскажите как получить эти дание в своий компоненти
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
эта сервиси мне нужна получить в компоненти этот масив
источник

ФІ

Федор Ігор in Angular - русскоговорящее сообщество
источник