npm 包 ngx-mentions-input 使用教程

在前端开发中,我们常常需要实现输入框中的 Mention 功能,在用户输入@符号后,能够展示出类似联系人列表的下拉框,以方便用户选择某个特定的联系人。为了实现这个功能,我们可以使用 npm 包 ngx-mentions-input。

什么是 ngx-mentions-input?

ngx-mentions-input 是一个 Angular 组件,用于实现 Mention 功能。它支持对用户输入的 trigger 进行自定义匹配,可以自定义 Mention 展示样式,支持多 suggest 选框等功能,是一个非常实用的 Angular 插件。

ngx-mentions-input 的安装

使用 ngx-mentions-input 首先需要先进行安装。在安装之前,确保已经安装了 Angular 以及 Rxjs。

安装时需要输入以下命令:

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

然后在需要使用 ngx-mentions-input 的组件中,引入 ngx-mentions-input 模块:

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

ngx-mentions-input 的使用

使用 ngx-mentions-input 需要进行以下几个步骤:

  1. 在模板中添加 ngx-mentions-input 标签,并进行参数配置;
  2. 在组件中进行 trigger 的匹配和数据的加载;
  3. 在组件中监听 ngx-mentions-input 的 change 事件,获取用户选择的 Mention 数据。

在模板中添加 ngx-mentions-input

首先,在模板中添加 ngx-mentions-input 标签,并进行参数配置。ngx-mentions-input 组件支持以下几个参数:

  • items: Mention 数据列表;
  • triggerChars: 触发 Mention 的字符;
  • labelKey: 展示在下拉框中的数据属性;
  • maxItems: 最大展示数量;
  • minChars: 触发 Mention 的最小字符数;
  • suggestDelay: 下拉框出现的延迟时间;
  • displaySuggests: 是否展示下拉框;
  • clearSuggestsOnBlur: 是否在失去焦点时自动清除下拉框。

可以配置一个简单的 ngx-mentions-input,如下:

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

进行 trigger 的匹配和数据的加载

在组件中,需要进行 trigger 的匹配和数据的加载。这可以通过使用 ngx-mentions-input 的 triggerCharPipe 来实现。

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

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

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

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

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

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

上述代码中的 loadItems 方法用于从 mentionItems 中过滤符合条件的 Mention 数据,并且使用 RxJS 的 of 和 delay 操作符进行延迟。matchTrigger 方法用于匹配符合触发字符的文本。

监听 ngx-mentions-input 的 change 事件

最后,在组件中监听 ngx-mentions-input 的 change 事件,获取用户选择的 Mention 数据。在获取用户选择的 Mention 数据时,需要对其进行格式化,例如需要在 Mention 数据前后添加标记。

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

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

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

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

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

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

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

ngx-mentions-input 的深入学习

ngx-mentions-input 支持的参数非常丰富,可以自定义各种各样的配置项,如自定义 trigger、自定义下拉框模板等。如果想要深入学习,可以参考 ngx-mentions-input 的官方文档,并查看源码。

总结

ngx-mentions-input 是一个非常实用的 Angular 插件,可以方便地实现 Mention 功能。使用 ngx-mentions-input 需要进行三个步骤:在模板中添加 ngx-mentions-input 标签,并进行参数配置;在组件中进行 trigger 的匹配和数据的加载;在组件中监听 ngx-mentions-input 的 change 事件,获取用户选择的 Mention 数据。同时,ngx-mentions-input 还支持自定义 trigger 和下拉框模板等功能。在开发中,可以根据具体情况进行使用。

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


猜你喜欢

  • npm 包 npm-typescript 使用教程

    前言 Npm 是 Node.js 的包管理工具,是前端开发必不可少的一部分。而 TypeScript 是一种由微软开发的高级编程语言,是 JavaScript 的超集(Superset),它扩展了 J...

    3 年前
  • npm 包 kisp 使用教程

    前言 现如今,前端工程师无论是在开发网站还是移动应用,都离不开 npm 这个包管理工具。npm 的强大之处是它提供了海量的包供我们使用,只需要一个命令,就可以把想要的包下载到本地,也可以把自己写的包发...

    3 年前
  • npm 包 keystone-file-manager 使用教程

    在前端开发中,处理文件操作是一项必不可少的任务。而 keystone-file-manager 可以让前端开发时更加轻松便捷。本篇文章将为你详细介绍 keystone-file-manager 的使用...

    3 年前
  • npm包scrolling-observer使用教程

    介绍 scrolling-observer是一个轻量级的JavaScript库,用于监听滚动事件并在元素进入和离开可视窗口时触发回调函数。这个库对实现类似于无限滚动加载、视差滚动等效果非常有用。

    3 年前
  • npm 包 krunker.io 使用教程

    如果你是一个前端开发者,那么你一定听说过 krunker.io 游戏,它是一个非常流行的网页游戏,也是很多开发者通过其实现各种有趣的项目。本文就是一个详细的 krunker.io npm 包使用教程,...

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

    介绍 在前端开发中,Toast 是一种非常常见的 UI 反馈组件,用来对用户进行一些提示信息展示,比如操作成功、失败、网络异常等等。isb-react-native-toast 是一款 React N...

    3 年前
  • npm 包 @2players/dollar1-unistroke-recognizer 使用教程

    前言 在前端开发中,手写笔划的识别和分析是一个非常有趣和实用的技术。本文将介绍一个 npm 包 @2players/dollar1-unistroke-recognizer,它提供了一个快速、准确和易...

    3 年前
  • npm 包 @deanacus/ajax 使用教程

    介绍 @deanacus/ajax 是一个前端常用的 Ajax 库,用于发送 XMLHttpRequest 请求并处理响应结果。它支持 Promise 和 async/await 两种方式进行请求处理...

    3 年前
  • npm 包 @highfivesfoundation/schema-provider 使用教程

    简介 @highfivesfoundation/schema-provider 是一个简单易用的 JavaScript 模块,可用于快速构建和管理表单和其他用户输入界面的数据模型。

    3 年前
  • npm 包 crypto-exchanges-rest-client 使用教程

    概述 crypto-exchanges-rest-client 是一款基于 REST API 的加密货币交易所客户端,可以用于方便地查询加密货币市场信息和执行交易操作。

    3 年前
  • npm 包 awrtc-signalling 使用教程

    awrtc-signalling 是一个基于 Node.js 的实时通信信令服务器,用于构建实时 Web 应用程序。它使用 WebSocket 作为信令协议和 TCP 协议作为底层传输协议。

    3 年前
  • npm 包 awrtc-signalling-angularfire 使用教程

    在前端开发中,我们通常使用 npm 包管理工具来方便地引入和使用各种第三方库。其中,awrtc-signalling-angularfire 是一个可以实现火掌门的 Awrtc 在线聊天室的 fire...

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

    React Native 是一种 JavaScript 框架,可以将代码转换为原生 iOS 和 Android 应用程序。React Native 提供了很多常用的组件,但有时也需要使用第三方库来帮助...

    3 年前
  • npm 包 @harijoe/handly 使用教程

    在前端开发中,我们经常需要使用各种各样的工具库和框架来提高效率和开发质量。其中,Node.js 的 npm 包管理器已经成为了最常用的工具之一。在众多 npm 包中,@harijoe/handly 是...

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

    对于 Node.js 开发者而言,npm 是一个非常重要的工具。npm 是一个包管理器,用于帮助 JavaScript 开发者发现、分享,并使用许多开源代码包。npm 安装在 Node.js 上,因此...

    3 年前
  • npm 包 vuepress-theme-fishingkm 使用教程

    简介 vuepress-theme-fishingkm 是一款基于 Vuepress 的主题,设计灵感来自于钓鱼,给人以轻松、自然的感觉,适合用于博客、个人网站等。

    3 年前
  • npm 包 react-image-async 使用教程

    在前端开发中,图片是一种不可避免的元素。然而,当页面需要加载大量图片时,这可能导致页面加载速度变慢,甚至出现加载失败的情况。为了解决这个问题,我们引入了一个 npm 包:react-image-asy...

    3 年前
  • npm 包 @tedberg/constraint-modeler 使用教程

    介绍 @tedberg/constraint-modeler 是一个基于约束编程的前端工具库,它可以帮助前端开发者更方便地构建复杂的用户界面。在使用 @tedberg/constraint-model...

    3 年前
  • npm 包 foxglove 使用教程

    简介 Foxglove 是一个前端工具库,提供了一些常见的工具函数和基础组件,以便于前端开发人员快速构建高质量的应用程序。它是一个开源项目,可以通过 npm 安装和使用。

    3 年前
  • npm 包 @hyperlink/plex-api-credentials 使用教程

    背景 Plex 是一款流媒体服务软件,可以提供音频、视频及其他数字媒体内容。要访问 Plex 服务,就需要进行身份验证,获取到访问令牌。而 @hyperlink/plex-api-credential...

    3 年前

相关推荐

    暂无文章