Angular 2 响应式表单:复选框值的数组

在前端开发中,表单是必不可少的组件之一。Angular 提供了响应式表单(Reactive Forms)来简化表单的处理和验证。本文将介绍如何在 Angular 2 中使用响应式表单来处理复选框的值,并将这些值存储在一个数组中。

创建响应式表单

首先,我们需要导入 FormsModuleReactiveFormsModule 模块:

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

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

接下来,我们可以使用 FormGroupFormControl 类来创建响应式表单。以下代码演示了如何创建一个包含多个复选框的表单:

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

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

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

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

在上面的代码中,我们首先定义了一个包含多个复选框的 items 数组。每个元素都有一个 key 属性用于标识控件,一个 label 属性用于显示标签文本,以及一个 value 属性表示控件的初始值。

接着,我们创建了一个空的 FormGroup 实例,并使用循环将每个复选框添加为一个 FormControl 控件。此时,表单中的复选框已经与响应式表单相关联,并且可以通过 form.value 属性来获取当前所有复选框的值。

存储复选框值的数组

要将所有选中的复选框的值存储在一个数组中,我们可以使用 valueChanges 方法来订阅表单值的变化,并通过 filter 方法过滤出所有选中的复选框。以下是修改后的示例代码:

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

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

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

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

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

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

猜你喜欢

  • 动态添加Javascript对象

    在前端开发中,我们经常需要在代码执行过程中动态地向Javascript对象添加属性和方法。这种需求有很多种场景,比如根据用户输入数据生成新的对象,或者从服务器获取数据后修改现有对象等等。

    7 年前
  • JavaScript - 页面加载时隐藏一个 Div

    在前端开发中,有时候需要在页面加载的时候隐藏某些元素。这篇文章将介绍如何使用 JavaScript 在页面加载时隐藏一个 Div 元素。 使用 CSS 隐藏元素 在开始之前,我们先来看一种比较简单的方...

    7 年前
  • Unique Device Identification

    在前端开发中,我们经常需要获取用户设备的唯一标识符,以便于进行数据统计、用户跟踪等操作。本文将介绍几种常见的获取设备唯一标识符的方法,并分析它们的优缺点。 1. Cookie 在用户第一次访问网站时,...

    7 年前
  • Remove value from object without mutating it

    在前端开发中,我们时常需要从一个对象中删除一些属性值。然而,在删除对象的属性时,会直接修改对象本身,这可能会导致其他部分的代码受到影响。在本文中,我们将探讨如何不改变原始对象的情况下,从 JavaSc...

    7 年前
  • 为什么 jQuery 源码中的 `j = +i + ( i < 0 ? len : 0 )` 中有一个前导 `+` 符号?

    在 jQuery 源码中,我们可能会看到一些复杂的表达式,包括一个前导的 + 符号。例如: --- --- - ----------- - - ----- -- -- - - --- ...

    7 年前
  • 使用 JavaScript 实现邮件发送(mailto)功能

    在前端开发中,有时需要使用邮件发送功能。虽然可以通过后端实现,但如果只是简单的发送邮件,使用 JavaScript 也可以轻松实现。 mailto 协议 mailto: 是一种 URL 协议,可以用于...

    7 年前
  • 切换 div 的可见性

    在前端开发中,经常需要动态地对页面元素进行显示或隐藏。其中一个常用的实现方式是通过切换 div 元素的可见性来实现。 实现方式 可以通过 JavaScript 来控制 div 元素的可见性。

    7 年前
  • HTML5 Video - Percentage Loaded?

    HTML5引入了&lt;video&gt;标签,使得在网页中嵌入视频变得更加容易和方便。但是,在加载视频的过程中,我们可能需要知道当前视频已经加载的百分比,以显示进度条或其他用户界面元素。

    7 年前
  • Javascript 函数和可选参数

    Javascript 函数是一种非常重要的编程工具,它们允许我们将代码封装在可重用的模块中,从而提高代码的组织性和可维护性。在本文中,我们将深入探讨 Javascript 函数中的可选参数及其使用方法...

    7 年前
  • 从 Angular2 中的 (keypress) 事件中获取按键信息

    在前端开发中,我们经常需要获取用户输入的按键信息。在 Angular2 中,我们可以使用 (keypress) 事件来监听按键事件。本文将介绍如何从 (keypress) 事件中获取按键信息,并提供示...

    7 年前
  • Javascript:如果是冒号就删除最后一个字符

    在前端开发中,我们常常需要对字符串进行处理。其中一个常见的需求是:如果一个字符串的最后一个字符是冒号,那么我们就需要把这个冒号删掉。这在处理 URL、CSS 样式和其他数据时非常有用。

    7 年前
  • 如何获取包含当前选区的 DOM 元素

    在前端开发中,我们时常需要获取用户选择的文本或者元素。但是,当我们得到用户选择的文本时,如何获取它所在的 DOM 元素呢?下面本文将为您介绍几种实用的方法。 方法一:使用 window.getSele...

    7 年前
  • Javascript如何遍历对象数组?

    当我们需要对Javascript中的对象数组进行遍历时,有几种方法可以实现这个目标。本文将介绍常用的两种方法以及它们的优缺点和适用场景。 方法一:for循环 最基础的方法是使用for循环来遍历对象数组...

    7 年前
  • Variable in for loop is a string [duplicate]

    抱歉,我无法使用Markdown格式编写文章。但是,我可以用文本的方式回答你的问题。 题目:Variable in for loop is a string [duplicate] 在前端开发中,我们...

    7 年前
  • Google Chrome 扩展程序:如何在程序注入的内容脚本中包含 jQuery?

    如果你想要编写一个浏览器扩展程序,那么你很可能需要在程序注入的内容脚本中使用 jQuery。不过,要让 jQuery 在一个内容脚本中运行并不是一件简单的事情。在这篇文章中,我们将介绍如何在你的内容脚...

    7 年前
  • jQuery - 如何判断一个输入框不是下拉选择框

    当我们使用jQuery时,我们经常需要根据输入框的类型来执行一些特定的操作。在这篇文章中,我将会向读者介绍如何通过jQuery来判断一个输入框是否为下拉选择框,并且提供示例代码帮助读者更好地理解。

    7 年前
  • JavaScript 中双等号(==)和三等号(===)之间的性能差异

    在 JavaScript 中,我们经常需要进行数据类型的比较和判断。而在比较时,我们通常会使用双等号(==)或三等号(===),这两种操作符看似相同,但实际上它们之间还是有一些重要的区别的。

    7 年前
  • Chart.js - 绘制任意垂直线

    在前端数据可视化中,经常需要在图表中绘制一条垂直参考线。Chart.js 是一个流行的 JavaScript 数据可视化库,它提供了丰富的图表类型和配置选项,并且易于使用。

    7 年前
  • 获取用户时区的方法

    在 Web 应用程序中,经常需要获取用户所在的时区信息以便正确地处理日期和时间。本文将介绍如何通过 JavaScript 获取用户时区信息。 方法一:使用 Intl API 现代浏览器支持 Intl ...

    7 年前
  • Mobile Safari 在 iOS 上在大页面上的崩溃问题

    移动设备的普及使得优化 Web 应用程序的性能成为前端开发的一个重要任务。然而,在移动 Safari 上,当加载大量内容的页面时,经常会出现崩溃的情况。这篇文章会深入探讨这个问题并提供一些解决方案。

    7 年前

相关推荐

    暂无文章