autoComplete.js-未定义如何解决autoComplete

时间:2018-12-27 11:41:52

标签: javascript autocomplete

我想在我的应用程序中使用autocomplete.js

我已使用yarn add @tarekraafat/autocomplete.js安装了该软件包。我正在使用webpack 4.28捆绑javascript文件,并用require("@tarekraafat/autocomplete.js/dist/js/autoComplete");将该包导入应用程序,并将捆绑的文件放在关闭BODY标记之前的底部。

在我的custom.js文件中,我正在创建一个新的autoComplete实例,如下所示:

new autoComplete({
  data: {
    src: async () => {
      document.querySelector("#autoComplete_results_list").style.display = "none";
      document.querySelector("#autoComplete").setAttribute("placeholder", "Loading...");
      const source = await fetch("/employee/search");
      const data = await source.json();
      return data;
    },
    key: "name"
  },
  selector: "#autoComplete",
  placeHolder: "type employee name to search...",
  threshold: 0,
  searchEngine: "strict",
  highlight: true,
  dataAttribute: { tag: "value", value: "" },
  maxResults: Infinity,
  renderResults: {
    destination: document.querySelector("#autoComplete"),
    position: "afterend"
  },
  onSelection: feedback => {
    document.querySelector(".selection").innerHTML = feedback.selection.food;
    document
      .querySelector("#autoComplete")
      .setAttribute("placeholder", `${event.target.closest(".autoComplete_result").id}`);
    console.log(feedback);
  }
});

但是,在运行该应用程序时,出现错误Uncaught ReferenceError: autoComplete is not defined,其中提到了创建新实例的位置。

我已经阅读了入门文档,并查看了演示代码,但无法弄清缺少的内容。如何解决该错误?

2 个答案:

答案 0 :(得分:0)

在内部编写代码

$(document).ready(function(){
  // Write your Code Here 
});

答案 1 :(得分:0)

您的问题出在您的导入中,您无法正确导入自动完成,因此在使用new autoComplete时遇到错误。

require("@tarekraafat/autocomplete.js/dist/js/autoComplete");更改为import autoComplete from '@tarekraafat/autocomplete.js';,将其放在文件顶部,紧接在jQuery之类的内容之后