npm 包 angular2-json-schema-form-updated 使用教程

介绍

angular2-json-schema-form-updated 是一个用于 Angular 2 及以上版本的库,它提供了一个快速生成 JSON 数据表单的方法。它基于 JSON Schema 规范,并在 Angular 2 中提供了一个组件化的方法,使得开发者能够快速地使用 JSON 数据来生成表单。

它的主要特点如下:

  • 支持 JSON Schema 规范。
  • 支持数据绑定。
  • 简单易用,API 文档完善。
  • 支持表单验证。
  • 提供了多种表单元素类型。

安装

使用 npm 进行安装:

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

这会将包安装至你的项目下,并将其添加到 package.json 文件中。

快速使用

生成表单

首先,在你的组件中引入 JsonSchemaFormModule:

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

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

其中,JsonSchemaFormModule.forRoot() 只需要在根模块中调用一次即可,它将为你的应用程序提供 ng2-json-schema-form 模块。之后,你就可以使用 ng2-json-schema-form 标记。

在 HTML 文件中,我们可以使用 ng2-json-schema-form 组件来生成表单。一个基本的用法如下:

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

其中:

  • schema 是 JSON Schema 规范下的数据格式。
  • model 是 JSON 实例数据格式。
  • layout 是指定表单的布局格式。
  • (onSubmit) 是表单提交时触发的事件。

这里需要注意的是,layout 是可选的。如果没有指定布局,ng2-json-schema-form 会自动生成默认布局。

自定义表单控件

ng2-json-schema-form 提供了很多常见的表单控件,例如文本框、下拉框、单选框等。但是,有时候我们需要自定义表单控件。

在使用 ng2-json-schema-form 时,我们可以通过在 schema 中使用 widget 属性,指定使用的控件。

例如:

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

它中的 id 属性可以用于指定控件的 ID。然后,我们可以在应用的任何地方使用这个控件。

例如,我们可以将自定义的控件添加到 app.module.ts 中:

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

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

entryComponents 中,我们必须将组件加入到 Angular 的编译列表中,否则 Angular 不会使用它到生成器中。

然后,在 schema 中我们可以这样使用:

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

表单验证

ng2-json-schema-form 支持表单验证。可以通过在 schema 下指定 required 属性或使用 format 属性指定数据格式。除此之外,ng2-json-schema-form 也支持自定义验证器。

例如,在 schema 中添加自定义验证器:

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

在 Angular 的代码中实现这个验证器:

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

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

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

然后,在 app.module.ts 或者任何其他的模块中,将自定义的验证器添加到 validators 列表中:

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

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

其他

ng2-json-schema-form 还支持导入/导出 JSON 数据,以及自定义布局样式等功能。如果需要了解更多请查看官方文档。

示例代码

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

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

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

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

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

总结

ng2-json-schema-form 是一个非常实用的库,它可以帮助我们快速生成复杂的 JSON 数据表单,而且它的使用也非常简单,只需要几个简单的配置就可以了。

同时,ng2-json-schema-form 也支持自定义表单控件和验证器,如果我们想使用自定义的表单控件或验证规则时,它也提供了很好的支持。 有了它的帮助,我们能以更快、更简单的方式开发我们的应用程序,从而提高我们的开发效率。

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


猜你喜欢

  • npm 包 manner-react 使用教程

    前言 随着现代互联网技术的不断进步,前端技术的重要性日益凸显。前端作为用户最先接触到的部分,其用户体验和页面加载速度对整个产品的质量有着至关重要的作用。npm包是现代前端项目中不可或缺的一部分,可以为...

    3 年前
  • npm 包 local-redux-devtools 使用教程

    在前端开发中,状态管理是非常关键的一部分。Redux 是一个流行的 JavaScript 应用程序状态容器,可以提供可预测性、可测试性和可扩展性。配合 Redux DevTools,我们可以更加方便地...

    3 年前
  • npm 包 f2e-middle-markdown 使用教程

    概述 f2e-middle-markdown 是一款基于 Node.js 平台的中间件,它可以将 Markdown 文本编译成 HTML 页面,并自动应用指定的模板样式,最终让页面展现出优美的风格。

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

    前言 在前端开发中,我们经常需要与后端 API 进行交互,发送 HTTP 请求并接收请求响应。rest-client-builder 是一个能够帮助我们快速、简单地构造发送 RESTful 请求的 n...

    3 年前
  • npm 包 tag-lang 使用教程

    简介 tag-lang 是一款基于 HTML 标签语法的 JavaScript 模板解析工具,它可以帮助前端开发者快速构建 JavaScript 模板应用。这个 npm 包的设计方便易用,同时附带详细...

    3 年前
  • npm 包 webpack-css-concat-plugin 使用教程

    前言 在前端开发中,webpack 是一款十分常用的打包工具,它擅长处理各种类型的资源,包括 JavaScript、CSS、图片以及其他文件类型。但是当我们项目中的 CSS 文件越来越多,打包后生成的...

    3 年前
  • npm 包 webpack-blocks-utils 使用教程

    前言 在前端开发中,webpack 是非常重要的工具之一,它可以帮助我们对项目进行打包、压缩、优化等处理。但是,配置 webpack 也是一项繁琐而费时的工作,特别是对于一些复杂的项目来说。

    3 年前
  • npm 包 monitor-client 使用教程

    简介 在前端开发中,如何进行代码性能监控和错误跟踪是一个非常重要的话题。monitor-client 是一个能够帮助我们进行代码性能监控和错误跟踪的 npm 包。它提供了许多有用的功能,例如监听页面加...

    3 年前
  • npm 包 cache_utils 使用教程

    前言 随着前端应用越来越复杂,模块化和代码复用的重要性也就越来越突出。在实际开发过程中,我们经常会用到一些工具类或者通用函数的库,这时候就需要用到包管理工具,而 npm 就是目前使用最为广泛的 Jav...

    3 年前
  • npm 包 Interpreting 使用教程

    在前端开发中,许多开发人员都会使用 npm 包来管理项目中的依赖关系。其中,Interpreting 是一个可以在代码执行期间监测 JavaScript/TypeScript 代码的 npm 包。

    3 年前
  • npm 包 cdxj 使用教程

    在前端开发中,我们经常需要操作 DOM 元素。而要在 DOM 元素中实现一些复杂的功能,往往需要使用一些工具库。其中,npm 包 cdxj 就是一个非常强大的工具库,它可以让我们非常方便地操作 DOM...

    3 年前
  • npm 包 rn-barcode-scanner 使用教程

    rn-barcode-scanner 是一款基于 React Native 技术的 npm 包,可以在 React Native 应用中实现条形码和二维码扫描功能。

    3 年前
  • npm 包 @4geit/rct-login-test-fabian-component 使用教程

    简介 @4geit/rct-login-test-fabian-component 是一款基于 React 框架的前端组件库,提供了一个用于登录测试的组件。 安装 使用 npm 安装: --- ---...

    3 年前
  • npm 包 @zenox/rcfile 使用教程

    在前端开发过程中,我们经常需要使用配置文件来存储一些固定配置,如本地开发服务端口,API 地址等。为了便于读取和管理这些配置,@zenox 开源了一个 npm 包 @zenox/rcfile,用于读取...

    3 年前
  • npm 包 vue-progress-bar 使用教程

    在 Web 前端开发过程中,实现一个进度条是一个常见的需求。vue-progress-bar 是一个易于使用的 Vue 组件,在应用程序中展示进度条,它支持多样的颜色和大小,是一款非常流行的 npm ...

    3 年前
  • npm 包 homebridge-mqtt-sprinkler-programm 使用教程

    本篇文章将介绍如何使用 npm 包 homebridge-mqtt-sprinkler-programm 实现自动化喷灌系统。作为前端开发者,我们可以使用该包中提供的 MQTT 协议和 Homebri...

    3 年前
  • npm 包 jstransformer-uglify-es 使用教程

    在前端开发中,我们常常需要将 JavaScript 代码压缩,以提高页面加载速度和减轻服务器负担。而 jstransformer-uglify-es 就是一个优秀的 npm 包,它可以将 JavaSc...

    3 年前
  • 前端开发必备插件之 npm 包 gulp-file-count 使用教程

    随着前端代码的复杂度不断升级,以及代码量越来越大,我们需要一些工具和插件来提高开发效率。其中,npm 包 gulp-file-count 就是一款前端开发必备的插件之一,它可以帮助开发者快速地统计文件...

    3 年前
  • npm 包 nodecloud-brakes 使用教程

    前言 npm (The Node Package Manager) 是 Node.js 的一个包管理器,用于安装、升级和删除 Node.js 包,被广泛地应用于前端和后端开发中。

    3 年前
  • npm 包 delegate-electron-events 使用教程

    当你的electron应用需要跨窗口或者跨进程通信时,你可能需要使用Electron的ipcMain和ipcRenderer,这两个API是Electron提供的用于从主进程向渲染进程发送消息,或者从...

    3 年前

相关推荐

    暂无文章