Cookie возвращает, вероятно, неправильный формат

В приложении Laravel я использую selectpicker для filterst. Мне нравится хранить статус опозданий в файле cookie.

Сохранить статус:

        function saveFilterStatus() {
            alert ($('#locationSelect').val())
            Cookies.set('location', $('#locationSelect').val());
        }

Результат оповещения: 31,32,37

Предварительно выбрать средство выбора:

        alert(Cookies.get('location'))
        $('#locationSelect').selectpicker('val', Cookies.get('location'));

Результат оповещения: ["31","32","37"]

Если я поставлю $('#locationSelect').selectpicker('val', ["31","32","37"]);, это сработает

Если я поставлю $('#locationSelect').selectpicker('val', Cookies.get('location'));, это не сработает

Что мне нужно адаптировать или чего не хватает, чтобы $('#locationSelect').selectpicker('val', Cookies.get('location')); работало?

Вам лучше использовать для этого localstorage вместо файлов cookie.

Lawrence Cherone 23.03.2019 07:16

@LawrenceCherone - как это поможет решить проблему

Jaromanda X 23.03.2019 07:18

@JaromandaX Это сработает;/

Lawrence Cherone 23.03.2019 07:20
$('#locationSelect').val() - это МАССИВ строк... оповещение, которое будет предупреждать представление toString этого массива... то есть именно то, что вы видите, но Cookies.set обрабатывает массив, используя метод массива JSON.stringify или .toSource (не уверен, какой), поэтому вы получаете строка, которую вы видите, предупреждена
Jaromanda X 23.03.2019 07:20

@LawrenceCherone $('#locationSelect').selectpicker('val', "31,32,37") будет работать лучше, чем $('#locationSelect').selectpicker('val', ["31","32","37"]), потому что localStorage будет хранить ["31","32","37"] как "31,32,37"

Jaromanda X 23.03.2019 07:31

@JaromandaX обычно вы упорядочиваете входящие данные или накладываете эту логику на вызываемый метод, так как вы имеете право хранить строки, такие как файлы cookie. В своем первоначальном комментарии я имел в виду простой API localStorage.foo = "bar", без библиотек, без хлопот.

Lawrence Cherone 23.03.2019 07:35
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Плагин js-cookie сохраняет значение cookie в строковом представлении (используя JSON.stringify). Когда вам нужно получить массив или объект в Cookie с помощью плагина js-cookie, вам нужно использовать Cookies.getJSON('keyName')

Так что в вашем случае используйте Cookies.getJSON('location').

Также вы можете использовать JSON.parse(Cookies.get('location'))

чтобы уточнить string representation ... это не результат array.toString(), который вы получаете с предупреждением ... скорее array.toSource() или JSON.stringify(array)

Jaromanda X 23.03.2019 07:23

Плагин js-cookie сохраняет объект или массив, используя метод JSON.stringify

Vishnu S Krish 23.03.2019 07:25

ОК - я узнал кое-что о библиотеке, которую никогда не захочу использовать :p

Jaromanda X 23.03.2019 07:26

Другие вопросы по теме