npm 包 mm-ng2-dnd 使用教程

阅读时长 9 分钟读完

1. 简介

mm-ng2-dnd 是一个 Angular 2 的拖放组件库,提供了一系列的指令和服务,方便开发者实现拖放功能。本文将为大家详细介绍如何使用和配置该组件库。

2. 安装和导入

使用 npm 安装 mm-ng2-dnd:

在 app.module.ts 中导入该包并添加到 import 数组中:

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

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

3. 使用指令

mm-draggable

mm-draggable 指令用于使元素可拖动。在 HTML 中添加指令:

可以通过配置属性实现对元素的控制:

  • dropZones:指定元素可以被拖动到哪些目标区域。dropZones 可以是一个字符串数组,也可以是一个返回字符串数组的函数。
  • dragData:传递到目标元素的数据。该值可以是任何类型。

mm-droppable

mm-droppable 指令用于使元素可接收拖放元素。在 HTML 中添加指令:

可以通过配置属性实现对元素的控制:

  • dropZones:指定元素接收哪些类型的拖放元素。dropZones 可以是一个字符串数组,也可以是一个返回字符串数组的函数。
  • onDropSuccess:接收到拖放元素后执行的回调函数。

mm-sortable

mm-sortable 指令用于使元素可进行排序。在 HTML 中添加指令:

可以通过配置属性实现对排序的控制:

  • dropZones:指定元素可排序的范围。dropZones 可以是字符串,也可以是返回字符串的函数。
  • dragStart:拖动开始时执行的回调函数。
  • dragEnd:拖动结束后执行的回调函数。
-- -------------------- ---- -------
--- 
  ----------
  ------------------------
  -----------------------
  -----------------------------
  -------------------------
-
  --- ----------- ---- -- --------- ---- -------
-----

4. 使用服务

除了以上三个指令之外,mm-ng2-dnd 还提供了一些服务,方便实现各种场景下的拖放交互。

DragDropService

DragDropService 是一个全局的服务,用于在应用程序中共享数据和状态。可以通过 Angular 的依赖注入(DI)方式引入该服务,并调用对应的方法。

  • addDragData:添加数据到当前拖动的元素中。
  • getDragData:获取当前拖动元素中存储的数据。
  • removeDragData:从当前拖动元素中删除存储的数据。
-- -------------------- ---- -------
------ - --------------- - ---- -------------

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

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

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

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

-

DragImageService

DragImageService 用于控制拖动图像的显示样式,可以通过 Angular 的 DI 引入该服务并在拖动开始时调用 show 方法,传递一个元素和偏移量即可。

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

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

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

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

-

5. 示例代码

完整的使用示例代码:(假设项目中已经引入了 Bootstrap 样式库)

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

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

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

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

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

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

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

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

6. 总结

mm-ng2-dnd 是一个非常方便实用的拖放组件库,通过使用该库,我们可以轻松实现拖放、排序等不同的交互场景。本文中我们详细介绍了如何使用指令和服务来配置和控制该组件库,希望可以对前端开发者们有所帮助。

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

纠错
反馈