JavaScript не распознает изменения, сделанные при перезагрузке - PullRequest
0 голосов
/ 03 апреля 2020

В настоящее время я борюсь с небольшой проблемой - я сделал поисковую страницу, используя LiveView. Проблема в том, что клиент хочет, чтобы я реализовал изменение URL, так как параметры поиска меняются. Мне уже удалось создать средство визуализации в режиме реального времени со стартовыми параметрами, взятыми из URL - я бы сказал, что это было легко.

В настоящее время я обновляюсь с каждым обновлением в режиме реального времени <span> с поле данных, содержащее текущий URL, который будет перенаправлен на поиск с заданными параметрами. В режиме реального времени JS hooks я вызываю функцию, которая отвечает за получение текущего поля данных url из заданного диапазона и затем устанавливает его как текущий url.

updated() {
        Map.initialize();

        Search.initFilters();
        Search.handleUrl();

        jcf.replaceAll('.main-search');
      },
handleUrl() {
    if (!$('.js-current-url').length) return;

    let newUrl = $('.js-current-url').data("current-url");
    //logged newUrl here - always the url from the firs updated() call
    history.pushState({}, null, newUrl);
  },

проблема в том, что функция handleUrl() не распознает изменения поля данных диапазона и все еще устанавливает старый URL-адрес из первого обновления просмотра в реальном времени. Буду признателен за любые советы. Я проверил поле данных в инструментах разработчика - оно меняется после каждого обновления. Проблема в другом.

Привет, Kaquadu

...