npm 包 typeahead.js_promise_fix 使用教程

阅读时长 12 分钟读完

概述

typeahead.js_promise_fix 是一个兼容 Promise 的 typeahead.js 模块。

typeahead.js 本身存在一些问题,例如不能兼容 Promise,或在某些情况下无法兼容某些浏览器。 typeahead.js_promise_fix 正是为了解决这些问题而诞生的。本文将介绍如何使用 typeahead.js_promise_fix。

安装

安装 typeahead.js_promise_fix 可以使用 npm 或直接下载。以下是使用 npm 安装的方法:

基本用法

typeahead.js_promise_fix 的使用方法与原始的 typeahead.js 类似。以下是一个简单的例子:

-- -------------------- ---- -------
--------- -----
------
------
  ------------------------
  ----- ---------------- --------------------------------------------------------------------------------------------
  ----- ---------------- -----------------------------------------------------------------------------------------------
  ------- -----------------------------------------------------------
  ------- --------------------------------------------------------------------------------------------------
  ------- --------------------------------------------------------------------------------------------------
  ------- ----------------------------------------------------------
-------
------
  ------ ----------------- ----------- ------------------- -- -----
--------
  --- ---------------- - -------------- -
    ------ -------- -------------- --- -
      --- -------- ------------
 
      -- -- ----- ---- ---- -- --------- ---- --------- -------
      ------- - ---
 
      -- ----- ---- -- --------- -- - ------ -------- --- --------- ---
      ----------- - --- --------- -----
 
      -- ------- ------- --- ---- -- ------- --- --- --- ------ ----
      -- -------- --- --------- ---- --- -- -- --- --------- -----
      ------------ ----------- ---- -
        -- ----------------------- -
          ------------------
        -
      ---
 
      ------------
    --
  --
 
  --- ------ - ----------- --------- ---------- ----------- -------------
    ----------- -------------- ----------- ---------- ---------- ---------
    -------- ----------- ---------- ------- --------- -----------
    ------------ -------- ----------- ---------------- -----------
    ------------ -------------- ----------- ---------- -----------
    --------- ---- ----------- ---- -------- ---- -------- ---- ------
    ------ ---------- ------ -------- ------- ----------- ---------
    --------------- ------ -------- ------ ---------- ------ --------
    ------------ -------- ------- ---------- ----------- -------------
    ----- ---------- ------------ ---------
  --
 
  ---------------------------
    ----- -----
    ---------- -----
    ---------- -
  --
  -
    ----- ---------
    ------- ------------------------
  ---
---------
-------
-------

在上述例子中,我们只需添加以下代码即可使用 typeahead.js_promise_fix:

可以看到我们的代码与原来的 typeahead.js 几乎相同。但是,我们现在可以使用 Promise 功能了。

高级用法

下面我们将介绍一些 typeahead.js_promise_fix 的高级用法。

自定义 HttpAdapter

typeahead.js_promise_fix 默认使用 jQuery 进行 ajax 请求。但是,如果您希望使用其他的 HttpAdapter,可以使用自定义 HttpAdapter。

以下是一个例子,使用 axios 作为 HttpAdapter:

-- -------------------- ---- -------
--------- -----
------
------
  ------------------------
  ----- ---------------- --------------------------------------------------------------------------------------------
  ----- ---------------- -----------------------------------------------------------------------------------------------
  ------- -----------------------------------------------------------
  ------- --------------------------------------------------------------------------------------------------
  ------- --------------------------------------------------------------------------------------------------
  ------- ----------------------------------------------------------
  ------- ---------------------------------------------------------
-------
------
  ------ ----------------- ----------- ------------------- ------ -----------
--------
  -------- ------------------------ -
    ------ ------------------------------------------------ -
      ------- -
        -- -----
      -
    --
    ------------------------ -
      --- --------- - -------------------------------------- -
        ------ -----------
      ---
      ------ ----------
    ---
  --

  ---------------------------
    ----- -----
    ---------- -----
    ---------- -
  --
  -
    ----- ---------------
    ------- ---------------------------------------
  ---
---------
-------
-------

可以看到,在上面的代码中,我们使用了 axios 作为 HttpAdapter 并定义了 githubHttpAdapter。 通过使用 typeaheadHttpAdapter 函数,我们将自定义的 HttpAdapter 传递给 typeahead.js_promise_fix。

自定义 Formatter

我们还可以自定义 Formatter,将输入的字符串转换为所需的格式。

以下是一个例子:

-- -------------------- ---- -------
--------- -----
------
------
  ------------------------
  ----- ---------------- --------------------------------------------------------------------------------------------
  ----- ---------------- -----------------------------------------------------------------------------------------------
  ------- -----------------------------------------------------------
  ------- --------------------------------------------------------------------------------------------------
  ------- --------------------------------------------------------------------------------------------------
  ------- ----------------------------------------------------------
  ------- ---------------------------------------------------------
-------
------
  ------ ----------------- ----------- ------------------- ------ -----------
--------
  -------- ------------------------ -
    ------ ------------------------------------------------ -
      ------- -
        -- -----
      -
    --
    ------------------------ -
      --- --------- - -------------------------------------- -
        ------ -
          ------ -----------
          ----- ----------
          ------- ---------------
        --
      ---
      ------ ----------
    ---
  --

  --- -------------- - ----- ---------------
    ---- --------------------
      -- ----------
        ---- -------------------- ---------------- ----------------
      -----
    -------
    ---- --------------------
      --- ------------------------------------
      ----------
    -------
  --------

  -------- --------------------- -
    ------ ------------------------------- ------
  -

  ---------------------------
    ----- -----
    ---------- -----
    ---------- -
  --
  -
    ----- ---------------
    ------- ----------------------------------------
    -------- --------
    ---------- -
      ----------- ---------------
    -
  ---
---------
-------
-------

在上面的代码中,我们添加了一个自定义的 githubFormatter 函数,通过 Mustache.js 来渲染 githubTemplate 模板。最后,通过 templates 属性来传递我们的自定义模板。

结论

通过本文,我们了解了如何使用 typeahead.js_promise_fix,它是一个兼容 Promise 的 typeahead.js 模块。我们还学习了如何使用自定义的 HttpAdapter 和 Formatter,以及模板技术。typeahead.js_promise_fix 能够为我们带来更多的灵活性和更好的体验,值得我们进一步探究和学习。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055aeb81e8991b448d8919

纠错
反馈