Динамическое изменение источника jQuery Typeahead - PullRequest
0 голосов
/ 26 мая 2020

Я использую jQuery Typeahead без ищейки.

Все, что я хочу, - это иметь возможность динамически переключаться между двумя разными наборами данных.

Это мой текущий код:

function updateTypeahead() {
  console.log("updating typeahead");
  window.typea = $('.js-typeahead').typeahead({
    minLength: 1,
    maxItem: 200,
    dynamic: true,
    backdrop:false,
    order: null,
    offset: "true",
    display: ["word","searchable"],
    accent: true,
    source: {
      data: function(query, sync, async) {
        return window.datasource[localStorage.getItem("scaDictLang")];
      }
    },
    callback: {
        onInit: function (node) {
            console.log('Typeahead Initiated on ' + node.selector);
            console.log($(node));
        },
        onSearch: function (node, query) {
          console.log("onSearch");
        },
        onSubmit: function (node, form, item, event) {
          if (item==null) {
            var firstItem = $($(".typeahead__list li a strong")[0]).text();
            if (firstItem!=""){
              window.location.href = window.searchurl[localStorage.getItem("scaDictLang")]+firstItem;
            }
          } 
          else {
            //console.log("onSubmit:", item);
          }
          return false;
        },
        onClickAfter: function (node, a, item, event) {
          window.location.href = window.searchurl[localStorage.getItem("scaDictLang")]+item.word
        }
    },
    template: window.dicttemplate[localStorage.getItem("scaDictLang")],
    emptyTemplate: [
        '<div class="empty-message">',
          'unable to find any entries that match your query',
        '</div>'
      ].join('\n')
  });
}

Дело в том, что если я вызываю его один раз, все работает нормально. Я попытался изменить источник другим способом, но в итоге просто переинициализировал Typeahead для того же элемента управления.

Это тоже работает, но без «уничтожения» более старого экземпляра.

Как я могу это сделать?

(Я везде искал SO, документацию по проекту и исходный код проекта, но все еще не уверен ... Я думаю, что большинство доступных ресурсов серьезно устарели)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...