В LocalStorage ключ и значение должно быть типа string
Подозреваю, что Angular как и React , не дружат с window и document. Вывод следующий. В React есть "циклы жизни". Смею предположить, что и в Angular тоже, иначе как там отслеживается отрисовка DOM дерева. Поэтому мутировать состояние localStorage нужно через какое-то состояние. Я ещё не пробовал аналогию на Angular.
Короче, начал тоглить текст)
при чем тут циклы и window?
Кстати локальное хранилище вообще обрабатывает только строки. Даже массив надо преобразовать в строку, а потом спарсить в массив, чтобы извлечь ключ или значение. JSON.parse() и JSON.stringity()
я в курсе, спасибо :)
При том что Angular это не html. Пока не отрисуется DOM дерево, вы не сможете с ним работать! Потому что его нет. Поэтому нужны циклы жизни, чтобы отследить, что DOM дерево отрендерилось, и только тогда с ним взаимодействовать.
полагаешь пока дом дерево не отрисовалось window и localStorage отсуствует?
Нет не предполагаю. Но помнится без ready даже с обычным html нельзя взаимодействовать, если javascript находится внизу в body. Там как раз работа с DOM происходит через window/document.
чел, ты в ангуляре а не в плейн хтмл-е)
да ладно, Америку прям открыл)
'true', '1' потом логикой
Что за глупость? localstorage хранит только строки
потому что 'true' === true - даст фолс)
ну и теорию нужно подучить значит)
это не значит что сетАйтем не должно работать)
нужно хотя бы 'true' === 'true'
вот именно, нужно читать - теорию читать_)
Ну кто-то выше об этом не знал, раз об ошибке спросил. Я наверное не то сообщение свайпнул для цитаты.
а тебе сообщения. человек спрашивает про ощибку "//ошибка"
тебе так сложно true в строку перевести что ли?)
читайте сообщение топикстартера
а тебе сложно прочитать сообщение?)
Видимо человек не отличает строку от булиан значений. А Angular не любит когда нарушают типизацию. 🤗
просто тут флоу быстрый, все подумали что это вопрос, а не ответ)
Как localStorage перевести в значение true? localStorage.setItem('isPopup1Opened', true); //ошибка
"Как localStorage перевести в значение true? localStorage.setItem('isPopup1Opened', true); //ошибка"
ну. и в чем проблема у человека?
в этом: .setItem(key: string, value: string)
а ты пихаешь это в консоль, а в консольке не тайпскрипт, а джаваскрипт, с динамической типизацией) логчино? логично(
js не знает о типизации.
Никак. Передаёшь строку как булиан значение и делаешь "тождественное равенство" по getItems(). Если оно равно строке 'true' - значит тру! 😊 С чекбоксом чтоли работа ? Там тогда toggle эффект нужен 😉
это не мой вопрос) я просто продублировал дурацкий вопрос какого-то чела
ну, а тайпскрипт знает
пиздец, any, конечно. иди учи теорию, умник 😂
равенство это просто показать. что строка не равно false. для наглядности
так ошибка или нет? умник)
ти блять сделай это так, как автор делал автор сообщения, и покажи скрин мне сюда
не груби) а то сгорит у тебя пердак)
у меня то не сгорит, просто сделай то, что я хочу
лол. что подгорел уже?) туши давай. специалист)
Что будет с человеком если он на яве или си писать будет? ПК разобьёт? Потому что хочет строку сделать булиан ??? (Мысли в слух)
Best practice: напишите LocalStorageService в котором будут get set поля и делайте parse при get, а set строго типизированный и так
Обсуждают сегодня