npm 包 @wf-dynamic-forms/ui-ng-bootstrap 使用教程

阅读时长 14 分钟读完

前言

在前端开发中,我们经常需要自定义一些表单组件或者界面,但是要从头开始写一个完整的表单组件不仅工作量大,还容易出现一些问题。因此,我们可以使用一些成熟的表单框架来快速构建自己想要的表单。

今天我们来介绍一个针对 Angular 开发的表单框架 —— @wf-dynamic-forms/ui-ng-bootstrap,它基于 Angular 和 ng-bootstrap 开发,提供了丰富的表单组件和界面,并支持自定义样式和表单验证。

如果你正在寻找一种用于构建 Angular 表单的快速和可靠的解决方案,@wf-dynamic-forms/ui-ng-bootstrap 一定是一个非常棒的选择。

安装

要使用 @wf-dynamic-forms/ui-ng-bootstrap,我们首先需要安装它。

快速上手

安装完成后,我们就可以在 Angular 应用中开始使用 @wf-dynamic-forms/ui-ng-bootstrap 了。首先,我们需要在 app.modules.ts 中引入需要的模块:

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

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

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

在这里,我们引入了 BrowserModule、FormsModule、ReactiveFormsModule 和 BrowserAnimationsModule 模块,以及 @wf-dynamic-forms/ui-ng-bootstrap 中提供的 DynamicFormsNgBootstrapUIModule 模块。

接下来,我们可以在组件中开始使用这些表单组件了。下面是一个简单的示例,其中包含一个文本输入框、一个多选框和一个提交按钮。

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

在组件中,我们定义了一个 formGroup,用于存放表单数据和验证规则。同时,我们为每一个表单控件定义了一个 formControlName 属性,这个属性和 formGroup 中的表单控件名称匹配。

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

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

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

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

在组件中,我们初始化了 formGroup 和 colors 属性,并在 onSubmit 方法中输出了表单数据。这样,我们就完成了一个简单的表单示例。

表单组件

@wf-dynamic-forms/ui-ng-bootstrap 提供了多种表单组件,包括文本框、下拉框、单选框、复选框、日期选择器等等。下面是一些常用的组件及其使用示例。

文本框

@wf-dynamic-forms/ui-ng-bootstrap 中提供了一个名为 InputQuestionComponent 的文本框组件,我们可以使用它来快速添加文本输入框。

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

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

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

在这里,我们使用 InputQuestion 和 FormGroup 来定义表单,然后使用 dng-bootstrap-form-question 组件来呈现文本框。当用户输入数据时,表单数据会通过 formGroup 控制器的 value 属性记录下来。

多选框

@wf-dynamic-forms/ui-ng-bootstrap 中还提供了一个名为 CheckboxQuestionComponent 的复选框组件,我们可以使用它来快速添加复选框。

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

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

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

在这里,我们使用 CheckboxQuestion 和 FormGroup 来定义表单,然后使用 dng-bootstrap-form-question 组件来呈现复选框。当用户勾选复选框时,表单数据会通过 formGroup 控制器的 value 属性记录下来。

下拉框

@wf-dynamic-forms/ui-ng-bootstrap 中还提供了一个名为 SelectQuestionComponent 的下拉框组件,我们可以使用它来快速添加下拉框。

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

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

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

在这里,我们使用 SelectQuestion 和 FormGroup 来定义表单,然后使用 dng-bootstrap-form-question 组件来呈现下拉框。当用户选择一个选项时,表单数据会通过 formGroup 控制器的 value 属性记录下来。

自定义样式和验证

除了提供多种表单组件外,@wf-dynamic-forms/ui-ng-bootstrap 还支持自定义样式和表单验证。

自定义样式

@wf-dynamic-forms/ui-ng-bootstrap 中的表单组件使用 ng-bootstrap 库中的样式,我们可以在组件中使用 ng Class 来自定义样式。例如,我们可以在文本框组件中添加一个自定义样式。

在这里,我们为 .form-control 添加了一个背景色和字体颜色,然后在 dng-bootstrap-form-question 组件中使用了一个名为 my-class 的 CSS 类名。

表单验证

@wf-dynamic-forms/ui-ng-bootstrap 中的表单组件支持表单验证,我们可以在组件中添加验证规则。

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

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

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

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

在这里,我们在 InputQuestion 中添加了一个必填验证规则 Validators.required,同时在 onSubmit 方法中判断了表单的有效性。

总结

@wf-dynamic-forms/ui-ng-bootstrap 是一个针对 Angular 开发的表单框架,提供了多种表单组件和界面,并支持自定义样式和表单验证。在本文中,我们介绍了 @wf-dynamic-forms/ui-ng-bootstrap 的安装、使用和自定义操作,希望本文能对你在前端开发中使用 Angular 表单框架有所帮助。

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

纠错
反馈