npm 包 ng-simple-modal 使用教程

阅读时长 7 分钟读完

简介

ng-simple-modal 是一个基于 Angular 框架的 modal 插件,可在网页中快速创建各种弹窗,如信息提示窗、确认窗、输入数据窗等。这个插件功能简单但非常实用,可以大大方便前端工程师在开发中的窗口操作。本教程将详细讲解 ng-simple-modal 的使用方法。

安装

运行以下命令来在项目中安装 ng-simple-modal:

然后在 app.module.ts 中加入:

使用

打开一个 Modal

首先,需要在 component.ts 中定义一下 Modal 的内容,例如:

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

@Component 中 selector 可以随意定义,结构 template 中无非就是一个普通的 html 结构,三个区域分别为 header、body、footer。最后定义一个类,继承 SimpleModalComponent。

在 component.ts 中 import ModalExampleComponent,然后在模板最后加一个按钮:

注意到这里的 #myModal 是定义这个 modal-example 组件的引用名,也可以用 #xxx 引用 id 为 xxx 的模板。这里的 #myModal 是对应上面的 ngModel 实例。我们直接在点击事件响应方法中,调用 myModal.open() 即可打开 Modal。

添加数据到 Modal 中

我们可以向 modal 中插入数据。在打开 Modal 的时候,可以通过设置 modalOptions 对象来传递数据,例如:

这里只是定义了一个 message 属性,实际使用中可以传递更多的数据。然后打开 Modal 的时候传入这个 options 对象:

这里的 [modalOptions] 是 Angular 的 input binding 语法,将 options 数据绑定到 #myModal 模板中的 modalOptions 变量。在 Modal 中,可以读取这个值并显示:

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

这里新增了 @Input() modalOptions 以接收 options 对象,并在模板中直接使用 modalOptions.data.message 即可读取。这里的 modalOptions 对象是 ng-simple-modal 内置的,直接复制即可使用。

传递参数

当 Modal 需要传递一个参数给打开它的组件时,例如一个确认窗口,触发后需要返回用户选择的值,可以使用下面的方法传递参数。

定义 Modal 组件的方法:

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

这里泛型 <ModalConfirmComponent,boolean> 表示 Modal 打开后将返回一个 boolean 类型的值,可以根据情况自定义返回值类型。在 Modal 组件中实现 onConfirm 和 onCancel 两个方法,当用户点击确定或取消时将值设置为 true 或 false 并关闭 Modal。

调用 Modal 的时候传递一个需要获取结果的 Promise,如下所示:

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

在调用 Modal 的时候,通过 open 方法返回一个 Promise,之后拿到 Promise 的结果,根据结果进行后续操作。这里我们定义的是一个 openDialog 的方法,当这个方法被触发的时候,会打开 ModalConfirmComponent,把参数传入模板中,并返回 Promise。之后再根据 Promise 的结果执行后续操作。

效果

最终效果如下:

总结

ng-simple-modal 是一个简单但实用的组件,使用也不算太难。本文详细介绍了 ng-simple-modal 的使用方法,并讲解了传递参数的方法。如果你需要创建各种弹窗,使用这个组件一定会让你事半功倍,推荐使用。

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

纠错
反馈