npm 包 can-places-autocomplete 使用教程

介绍

can-places-autocomplete 是一个基于 Google Places API 的自动完成插件。可以用于在输入框中提供实时的地址自动完成建议。这个插件是一个基于 CanJS 框架的组件,提供了许多可配置选项和回调函数,非常灵活。

安装

可以通过 NPM 进行安装 can-places-autocomplete 包:

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

或者可以手动下载并引入 dist 目录下的 can-places-autocomplete.min.js 文件。

使用

可以像下面这样使用 can-places-autocomplete:

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

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

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

在这个例子中,我们首先手动加载了 Google Places API 的 JavaScript SDK,并传入了一个 Google Maps API key,以及所需要的 libraries。然后我们创建了一个 CanAutocomplete 实例,并将其挂载到了一个输入框上。我们还配置了一些选项,比如 types 和 mapOptions,在获取地址建议后执行了一个自定义的回调函数 onPlaceSelected。

注意:

  • 在使用之前,请确保你已经获得了 Google Maps API Key,可以在这里申请:https://developers.google.com/maps/documentation/javascript/get-api-key
  • 由于这个插件依赖于 Google Places API,所以在使用之前,需要先手动引入 Google Places API 的 JavaScript SDK。
  • 为了保证代码的可读性,这里省略了一些基础的 CanJS 插件初始化和配置规则。

API

CanAutocomplete

构造函数

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

创建一个 CanAutocomplete 实例,并将其挂载到指定的 DOM 元素上。

  • element:要挂载的 DOM 元素。
  • options:配置项。

选项

选项名 默认值 描述
googleApiKey '' 必填。Google Maps API Key。
types [] 非必填。要在自动完成建议中包括的地址类型(可以是字符串数组或字符串)。详见 https://developers.google.com/maps/documentation/javascript/places-autocomplete#add_autocomplete。
bounds null 非必填。限制自动完成建议的搜索范围。
mapOptions {} 非必填。一个可传递给 Google Maps API 的配置对象,详见 https://developers.google.com/maps/documentation/javascript/reference/map#MapOptions。
locationSelect false 非必填。为 true 时,在使用用户选中建议一次发起查询时,请求的位置参数为用户选择的地址,而不是当前搜索框的位置。
onInput null 非必填。当输入框的数值发生变化时调用的函数,默认情况下,输入的值被用作查询建议的关键字,可以在这个函数的回调中对输入的值进行处理或者通过返回 false 阻止自动完成建议的出现。函数被传递了输入框 DOM 元素和输入框当前的值。
onPlaceChanged null 非必填。当用户选择一个地址时调用的回调函数。函数被传递了一个对象,包含了有关所选地址的信息,详见 https://developers.google.com/maps/documentation/javascript/reference/places-service#PlaceResult。这个回调函数会在构造函数中传递给 PlacesService 的 onPlaceChanged、或者 AutocompleteService 的 onPlaceChanged(在 locationSelect 为 true 时)。
onError null 非必填。当在请求建议或者领地信息时出现错误时,调用的函数。函数被传递了一个 Error 对象。

方法

方法名 描述
destroy 从 DOM 中移除自动完成输入框和相关的对象和事件处理程序。这个函数中所有内部事件处理程序对当前实例的引用都会被删除。如果需要再次使用实例,需要重新创建。
reset 重新将输入框设为初始状态,并清除选择建议的选项。如果开启了 locationSelect 选项,还会将该选项关闭,并且假定用户从未选择过建议。此时如果调用 getPlace 方法会返回 null。
getPlace 获得当前从 PlacesService 或 AutocompleteService 返回的 selectedPlace。可以在 onPlaceChanged 回调函数中调用。返回一个 PlaceResult 对象,该对象包含了有关该地点的多个信息部分,详见:https://developers.google.com/maps/documentation/javascript/reference/places-service#PlaceResult。

事件

事件名 描述
focus 当输入框获得焦点时触发。
blur 当输入框失去焦点时触发。
places_changed 当 PlacesService 或 AutocompleteService 返回新建议列表时触发。返回一个包含当前自动完成文本框下的所有建议的 PlaceResult 对象数组。
status_changed 当请求 PlacesService 或 AutocompleteService 的状态发生更改时触发。
load_script_fail 当自动加载 Google Maps API 失败时触发。

例子

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

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

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

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

结论

can-places-autocomplete 是一个非常灵活的 JavaScript 自动完成输入框组件,可以很容易的集成到你的项目中。通过一些简单的配置,你可以随心所欲的控制输入框的搜索参数和搜索建议的类型。同时,can-places-autocomplete 还提供了丰富的回调函数和事件响应机制,可以满足不同应用场景下的各种需求,并且在整个使用过程中非常易于使用和调试。

参考

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600573a081e8991b448e99aa


猜你喜欢

  • npm 包 node-threejs-raub 使用教程

    前言 前端开发领域中,Three.js 是一个优秀的 JavaScript 3D 图形库。它提供了许多强大的功能,使得 3D 图形处理变得简单易用。然而,Three.js 的 API 相对比较复杂,因...

    3 年前
  • npm 包 caxios 使用教程

    什么是 caxios? caxios 是一个基于 axios 封装的库,用于简化前端发起请求的操作。它提供了许多便利的特性,例如: 处理请求异常情况:caxios 可以自动处理网络异常、请求错误、响...

    3 年前
  • npm 包 node-webgl-raub 使用教程

    介绍 node-webgl-raub 是一个开源的 npm 包,它提供了一种在 Node.js 环境下使用 WebGL 的方式。这种方式非常适合在服务器端渲染 3D 图形、数据可视化、游戏等场景下使用...

    3 年前
  • npm 包 statusline 使用教程

    statusline 是一个简单的 npm 包,用于在终端显示当前运行程序的状态信息。本文将带领大家深入了解 statusline 的使用方法,包括安装、引入、API 接口等,以及如何使用自定义插件自...

    3 年前
  • npm 包 @bnchdrff/scroll-to 使用教程

    在前端开发中,我们经常需要实现一些页面滚动的效果。而使用 JavaScript 来控制滚动时,往往需要编写大量的代码。接下来,我们将介绍一款名为 @bnchdrff/scroll-to 的 npm 包...

    3 年前
  • npm 包 mobile-message 使用教程

    在前端开发中,我们常常需要使用手机短信验证码来验证用户身份。而使用 npm 包 mobile-message 可以方便地实现这些功能。本文将详细介绍如何使用 mobile-message 进行手机短信...

    3 年前
  • npm 包 appmodel-protractor 使用教程

    什么是 appmodel-protractor? appmodel-protractor 是一款专门为前端开发构建的 npm 包,它可以在 Protractor 中提供 Appium 的操作,实现在 ...

    3 年前
  • npm 包 "first-romin-npm-package" 使用教程

    简介 npm 是 JavaScript 包管理器,用于 Node.js 环境中的软件包安装和分发,也可用于前端项目中的依赖管理。"first-romin-npm-package" 是一个简单的 npm...

    3 年前
  • npm 包 better-react-proxy-loader 使用教程

    前言 在日常前端开发中,我们会经常使用到webpack进行打包,而在webpack的loader中,通常我们使用的是react-hot-loader进行热更新。但是我们可能还需要对一些较为复杂的组件进...

    3 年前
  • npm 包 wdio-teamcitycucumber-reporter 使用教程

    在前端自动化测试中,测试报告是非常重要的一部分。而 wdio-teamcitycucumber-reporter,作为 WebdriverIO 中生成过程优雅、结构清晰的 Cucumber 测试报告的...

    3 年前
  • npm 包 typescript-fsa-redux-observable 使用教程

    简介 在前端领域,使用 TypeScript 等语言开发应用已经成为了越来越流行的选择。而 Redux 又是一种流行的状态管理工具,通过一定的规范与约束,让前端项目的数据管理更加便捷。

    3 年前
  • npm 包 iota-auth 使用教程

    作为一个前端开发者,我们常常需要使用到各种开源前端库和框架,以提高我们的生产效率和加快开发速度。其中,npm 是我们常用的包管理工具。在这篇文章中,我将会介绍一款名为 iota-auth 的 npm ...

    3 年前
  • npm 包 react-native-joyride 使用教程

    React Native 是一种流行的跨平台移动应用开发框架,为开发人员提供了快速创建高质量应用程序所需的工具和资源。在开发 React Native 应用程序时,您可能需要引入其他 npm 包来提高...

    3 年前
  • npm 包 express-ejs-decorator 使用教程

    介绍 express-ejs-decorator 是一个基于 Express 和 EJS 的 npm 包,可以帮助前端开发人员更快速地实现视图和控制器的关联。它采用装饰者模式,在简化代码的同时,提高了...

    3 年前
  • npm 包 Stockroom 使用教程

    了解如何使用 Stockroom 对 Redux 状态进行管理和存储。 Stockroom 是在 Redux 基础上开发的一个简洁、快速的状态管理库。它允许你使用轻量级的 API 进行快速状态更新...

    3 年前
  • npm 包 nodebb-plugin-opencc 使用教程

    随着中文互联网的发展,越来越多的网站和应用程序需要支持中文。而其中一个常见的需求是中文简繁体转换。nodebb-plugin-opencc 是一个基于 Node.js 平台的 npm 包,它提供了简繁...

    3 年前
  • NPM 包 Angular-release-name-generator 使用教程

    Angular-release-name-generator 是一个 NPM 包,可以帮助 Angular 项目自动生成版本号和发布名称。该工具基于 Semantic Versioning 规范,能够...

    3 年前
  • npm 包 convert-js 使用教程

    简介 在前端开发中,我们经常需要进行数据格式转换,例如将日期字符串转换成时间戳、将数字字符串转换成数字等等。而 convert-js 就是一款方便的 npm 包,可以帮助我们快速实现各种数据格式转换。

    3 年前
  • npm 包 cordova-plugin-qucoondevice 使用教程

    如果你正在开发手机应用程序,并且需要与硬件设备进行交互的话,那么 cordova-plugin-qucoondevice 这个 npm 包就是一个非常有用的工具。在本教程中,我们将详细介绍如何使用它,...

    3 年前
  • npm 包 node-bullet-raub 使用教程

    前言 在前端开发中,我们经常会需要通过 WebSocket 与服务器进行实时通信,而 node-bullet-raub 就是一个专为 WebSocket 设计的 npm 包,它提供了一些实用的函数和类...

    3 年前

相关推荐

    暂无文章