Как мне вызвать jQuery typeahead после импорта из файлов поставщика? - PullRequest
0 голосов
/ 12 февраля 2019

Я импортирую jQuery Typeahead (http://www.runningcoder.org/jquerytypeahead/) в мой веб-пакет, и он успешно импортирует, но когда я вызываю функцию, выдает ошибку.

Что странно, если я включаюфайл vendor в каталоге моего приложения, он работает правильно.

Сразу после импорта, если я выполняю console.log (window.Typeahead), он показывает номер версии, поэтому я уверен, что он загружается.

import $ from "jquery"

window.jQuery = $

import "jquery-typeahead"

;(function() {
  function createTypeahead(el) {
    let field = $(el)
    let data = field.data()
    field.typeahead({
      minLength: 2,
      order: "asc",
      dynamic: true,
      delay: 500,
      emptyTemplate: "no result for {{query}}",
      source: {
        agents: {
          display: ["first_name", "last_name", "email"],
          templateValue: "{{first_name}} {{last_name}}",
          ajax: function(query) {
            return {
              type: "GET",
              url: data.url,
              data: {
                q: "{{query}}",
              },
            }
          },
        },
      },
      callback: {
        onClick: function(node, a, item, event) {
          let typeaheadFor = data.typeahead
          if (typeaheadFor !== undefined && item["id"].length) {
            $("#" + typeaheadFor).val(item["id"])
          }
        },
      },
    })
  }

  $(".js-typeahead").each(function(i, el) {
    createTypeahead(el)
  })
})()

При загрузке страницы я получаю следующую ошибку в консоли:

Uncaught TypeError: field.typeahead is not a function

...