npm包 angular2-serverpagination-datatable-fixed 使用教程

阅读时长 13 分钟读完

简介

angular2-serverpagination-datatable-fixed 是一个基于 Angular2 的前端组件,它实现了一个可进行服务器端分页和过滤的数据表格。该组件依赖于 ngx-paginationng2-table,并自定义了一些修复和功能。通过使用这个组件,我们可以快速方便地在 Web 应用程序中创建一个高级的数据表格。

安装

该组件已经发布到了 npm 上,因此安装非常简单。在你的 Angular2 项目中执行以下命令:

接下来,在你的 Angular2 模块文件中添加以下导入语句:

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

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

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

这个例子导入了所有必要的依赖并将 ServerpaginationDatatableComponent 添加到模块的声明和导出列表中。

使用

现在,你已经将该组件添加到了你的 Angular2 项目中。下面是如何使用它的一些简单示例。首先,假设已经创建了一个包含数据的主组件:

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

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

这里使用了一个基本的数据表格来显示数据。现在,我们将在组件模板中使用 ServerpaginationDatatableComponent 并将数据注入到其 data 属性中。

你会注意到,ServerpaginationDatatableComponent 会自动配置 ngx-pagination 和 ng2-table。如果需要自定义样式和配置,可以在上述导入语句中查看 ngx-pagination 和 ng2-table 的文档。

参数

ServerpaginationDatatableComponent 可以接收以下参数:

参数名称 类型 描述 默认值
data any[] 要显示的数据数组。如果需要在数据发生变化后更新视图,将数据分配给一个新数组。 null
columns TableColumn[] 表格列的数组。每个 TableColumn 元素应该包含一个名称和一个属性。属性是指作为该列数据源的对象中的属性名称。请参考以下示例:[{ name: 'Id', prop: 'id' }, { name: 'Name', prop: 'name' }]。 []
config any 包含 ngx-pagination 和 ng2-table 配置的对象。 {}

示例

在这个例子中,我们将使用 GitHub 上的示例数据来演示 ServerpaginationDatatableComponent 的功能。我们还将添加服务器端分页和排序的支持。

首先,在模板中添加 ServerpaginationDatatableComponent 的使用,然后在组件中定义一个 data 数组:

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

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

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

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

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

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

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

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

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

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

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

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

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

这里的主要变化是构造器中对数据的异步获取,以及表格从数据中获取而不是定义静态的 rows 数组,Controller 大致分为以下几部分:

  1. 获取数据
  2. 简单的输入框搜索,实现了 reset 和触发变更表格的流程
  3. 排序和分页相关业务处理

config 对象中 'paging', 'sorting', 'filtering' 的属性都是 ngx-pagination 和 ng2-table 的支持,它们的值分别表示是否分页、排序、过滤,相应的细节在其文档中会有相应介绍。

总结

通过使用 npm 包 angular2-serverpagination-datatable-fixed,我们可以很方便地创建一个具有服务器端分页和过滤功能的 JavaScript 数据表格。同时,它也和 Angular2 我们常常使用的诸多组件相容,例如 Angular2 Router、Angular2 Http 等,非常便于使用。详细的实现细节和相关代码均可以在该项目的 GitHub 网页上找到。

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

纠错
反馈