首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Angular Reactive Form -动态构建数组值(根据迭代隐藏和显示值)

Angular Reactive Form是Angular框架中的一种表单处理方式,它基于响应式编程的思想,可以动态构建数组值并根据迭代隐藏和显示值。

在Angular中,Reactive Form提供了一种声明式的方式来处理表单,通过使用FormControl、FormGroup和FormArray等类来管理表单的状态和值。而Angular Reactive Form中的动态构建数组值,可以通过FormArray来实现。

FormArray是一个特殊的FormControl,它可以用来管理一组表单控件的状态和值。通过动态添加或移除FormControls,我们可以实现根据迭代隐藏和显示值的功能。

下面是一个示例代码,演示了如何使用Angular Reactive Form动态构建数组值并根据迭代隐藏和显示值:

代码语言:txt
复制
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormArray } from '@angular/forms';

@Component({
  selector: 'app-my-form',
  templateUrl: './my-form.component.html',
  styleUrls: ['./my-form.component.css']
})
export class MyFormComponent implements OnInit {
  myForm: FormGroup;

  constructor(private fb: FormBuilder) { }

  ngOnInit() {
    this.myForm = this.fb.group({
      items: this.fb.array([])
    });
  }

  get items(): FormArray {
    return this.myForm.get('items') as FormArray;
  }

  addItem() {
    const item = this.fb.group({
      name: '',
      value: ''
    });
    this.items.push(item);
  }

  removeItem(index: number) {
    this.items.removeAt(index);
  }
}

在上述代码中,我们首先使用FormBuilder创建了一个FormGroup,并在其中定义了一个FormArray,用于存储动态添加的表单项。addItem()方法用于向FormArray中添加一个新的表单项,removeItem()方法用于移除指定位置的表单项。

接下来,我们可以在模板文件中使用ngFor指令来迭代显示FormArray中的表单项,并根据需要隐藏或显示特定的表单项。

代码语言:txt
复制
<form [formGroup]="myForm">
  <div formArrayName="items">
    <div *ngFor="let item of items.controls; let i = index" [formGroupName]="i">
      <input formControlName="name" placeholder="Name">
      <input formControlName="value" placeholder="Value">
      <button (click)="removeItem(i)">Remove</button>
    </div>
  </div>
  <button (click)="addItem()">Add Item</button>
</form>

在上述模板中,我们使用formArrayName指令将FormArray绑定到HTML中的一个div元素上,并使用formGroupName指令将每个表单项绑定到对应的div元素上。通过调用addItem()和removeItem()方法,我们可以动态添加或移除表单项。

总结一下,Angular Reactive Form提供了一种方便灵活的方式来处理表单,并且可以通过FormArray实现动态构建数组值并根据迭代隐藏和显示值的功能。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云数据库(TencentDB)。您可以通过以下链接了解更多关于腾讯云的产品和服务:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Angular 从入坑到挖坑 - 表单控件概览

在使用 ngModel 进行模板绑定时,angularform 标签上自动附加了一个 NgForm 指令,因为 NgForm 指令会控制表单中带有 ngModel 指令 name 属性的元素,而...类的方式来简化的完成表单的构建 FormBuilder 服务有三个方法:control、group array,用于在组件类中分别生成 FormControl、FormGroup FormArray...使用 FormBuilder 构建的控件,每个控件名对应的都是一个数组,第一个为控件的默认,第二项第三项则是针对这个设定的同步、异步验证方法 import { Component, OnInit...} from '@angular/core'; // 引入 FormBuilder 构建表单控件 import { FormBuilder } from '@angular/forms'; //...} from '@angular/forms'; // 引入 FormBuilder 构建表单控件 import { FormBuilder } from '@angular/forms'; //

18.9K20

AngularDart4.0 指南- 表单 顶

一路上你将学习如何: 用组件模板构建一个Angular表单。 使用ngModel创建读取写入输入控制的双向数据绑定。 跟踪状态变化表单控件的有效性。...您可以使用Angular模板 构建几乎任何表单- 登录表单,联系表单几乎任何业务表单。...p模板输入变量在每次迭代中是不同的power; 您使用插语法显示其名称。 与ngModel的双向数据绑定 现在运行应用程序有点令人失望。 ? 你没有看到英雄数据,因为你还没有绑定到英雄。...根据控制状态给出视觉反馈 使用CSS类绑定,您可以更改表单控件的外观以反映其状态。 跟踪控制状态 Angular表单控件可以告诉您用户是否触摸了该控件,是否改变,或者该是否失效。...显示错误消息。 您可以通过根据名称控制的状态设置的隐藏属性来控制错误消息的可见性。

17.4K30

Angular 6.x 表单快速入门

Angular 中有两种表单: Template Driven Forms - 模板驱动式表单 (类似于 AngularJS 1.x 中的表单 ) Reactive Forms - 响应式表单 Template...Driven 表单的特点 使用方便 适用于简单的场景 通过 [(ngModel)] 实现数据双向绑定 自动生成 Form Model (异步) 最小化组件类的代码 不易于单元测试 Reactive 表单的特点...比较灵活 适用于复杂的场景 简化了HTML模板的代码,把验证逻辑抽离到组件类中 手动创建 Form Model (同步) 方便的跟踪表单控件的变化 易于动态添加表单控件 易于单元测试 本文主要介绍...如何显示验证失败的错误信息?...比如联系人的信息包括姓名及住址,现在需对姓名住址进行精细化信息收集,姓名可精细化成姓名字,地址可精细化成城市、区、街等。

4.6K20

Vue入门—常用指令详解

一、指令 v-model 多用于表单元素实现双向数据绑定(同angular中的ng-model) v-for 格式: v-for=”字段名 in(of) 数组json” 循环数组或json(同angular...中的ng-repeat),需要注意从vue2开始取消了$index v-show 显示内容 (同angular中的ng-show) v-hide 隐藏内容(同angular中的ng-hide) v-if...显示隐藏 (dom元素的删除添加 同angular中的ng-if 默认为false) v-else-if 必须v-if连用 v-else 必须v-if连用 不能单独使用 否则报错...模板编译错误 v-bind 动态绑定 作用: 及时对页面的数据进行更改 v-on:click 给标签绑定函数,可以缩写为@,例如绑定一个点击函数 函数必须写在methods里面 v-text 解析文本...role="form"> 52 53 用户名: 54 < 发布者:全栈程序员栈长,转载请注明出处

1.1K20

Vue入门---常用指令详解

Vue入门 Vue是一个MVVM(Model / View / ViewModel)的前端框架,相对于Angular来说简单、易学上手快,近两年也也别流行,发展速度较快,已经超越Angular了。...一、指令 v-model 多用于表单元素实现双向数据绑定(同angular中的ng-model) v-for 格式: v-for="字段名 in(of) 数组json" 循环数组或json(同angular...中的ng-repeat),需要注意从vue2开始取消了$index v-show 显示内容 (同angular中的ng-show) v-hide 隐藏内容(同angular中的ng-hide) v-if...    显示隐藏  (dom元素的删除添加 同angular中的ng-if 默认为false) v-else-if 必须v-if连用 v-else 必须v-if连用  不能单独使用  否则报错   ...模板编译错误 v-bind 动态绑定  作用: 及时对页面的数据进行更改 v-on:click 给标签绑定函数,可以缩写为@,例如绑定一个点击函数  函数必须写在methods里面 v-text 解析文本

1.6K10

AngularDart4.0 指南- 模板语法二 顶

NgClass 您通常通过动态添加删除CSS类来控制元素的显示方式。 你可以绑定到ngClass来同时添加或删除多个类。 class绑定是添加或删除单个类的好方法。 <!...NgStyle 您可以根据组件的状态动态设置内联样式。 使用NgStyle,您可以同时设置多个内联样式。 样式绑定是设置单个样式的简单方法。...警惕隐藏大型组件树; NgIf可能是更安全的选择。 警惕null ngIf指令通常用于防止null。 显示/隐藏是无用的。 如果嵌套表达式试图访问null属性,Angular会抛出一个错误。...它可以根据切换条件从几个可能的元素中显示一个元素。 Angular只把选中的元素放入DOM中。...heroForm的是什么? heroForm是一个Angular NgForm指令的引用,可以跟踪表单中每个控件的有效性。 原生元素没有form属性。

29.9K20

Vue3学习笔记(六)—— 作业

(3) 在记事内容的最下方可以显示共有多少记事条数。 (4) 在记事内容的最下方单击“清除所有记录”按钮,可以清除所有记事条,并隐藏最下方的条数“清除所有记录”按钮,如实验图3-2所示。...5.1.1.1.3、掌握文本插显示。 5.1.1.1.4、掌握Vue 3.0的计算属性各种指令。 5.1.1.2、实验要求 实现影院订票系统前端页面,如图5-1 所示。...2.6、怎么定义Vue-router的动态路由?怎么获取传过来的? 2.7、Vue-router有哪几种导航钩子? 2.8.、简述routerouter的区别。...5.1.1.2、掌握基础路由编程式导航实现。 5.1.1.3、掌握动态路由路由的参数传递方式。 5.1.1.4、掌握路由守卫的实现方式。...(2)单击1次按钮后,按钮的内容浏览器控制台显示的内容。 (3)单击6次按钮后,按钮的内容浏览器控制台显示的内容。

4.3K30

Vue3组件(九)Vue + element-Plus + json = 动态渲染的表单控件 单列多列

一个成熟的表单 表单表单,你已经长大了,你要学会: 动态渲染 支持单列、双列、多列 支持调整布局 支持表单验证 支持调整排列(显示)顺序 依据组件显示需要的组件 支持 item 扩展组件 可以自动创建...> formColSort 存放组件ID的数组,决定了显示哪些组件以及显示的先后顺序。...formColSpan 存放组件占位的数组。依据el-col的span的24格设定。 getCtrMeta(ctrId) 根据组件ID获取组件的meta。 为啥要写个函数呢?...} // 同步父组件的v-model context.emit('update:modelValue', formModel) return formModel } 可以根据类型默认...// 监听组件的变化,调整组件的显示以及显示顺序 if (typeof formMeta.formColShow !

3.8K21

测试需求平台12-产品模块增改功能实现

✍ 此系列为整理分享已完结入门搭建《TPM提测平台》系列的迭代版,拥抱Vue3.0将前端框架替换成字节最新开源的arco.design,其中约60%重构20%新增内容,定位为从 0-1手把手实现简单的测试平台开发教程...步骤1: 完成基础对话框 在产品管理vue文件中 继续一个按钮对话框组件,并分别绑定事件,对话框的显示隐藏通过v-model: visible控制。.../* 产品添加对话框start */ const addModalVisible = ref(false); // 控制显示隐藏布尔,默认为flase const addButtonClick...import { ref, reactive } from 'vue'; ...省略... // 添加或编辑使用表单对象vue3使用reactive使其对象编程响应式,否则form表单不会反填数据...desc: undefined, operator: 'Mega Qi' }) /* 产品编辑部分start */ // 控制显示隐藏编辑对话框布尔,默认为flase const

16530

Svelte框架:编译时优化的高性能前端框架

与其他框架(如React、VueAngular)相比,Svelte的主要优势在于它在构建阶段就进行了优化,将模板逻辑转换为简单的DOM操作,减少了运行时的开销。...计算属性缓存Svelte编译器会识别计算属性,并在未变时复用旧,避免重复计算。...Reactive DeclarationsReactive declarations以$:开头,用于声明一个变量的根据其他变量的变化而变化。...Svelte的应用场景小型应用对于小型项目,Svelte的轻量级高性能特性使其成为理想的选择。无需复杂的配置库,开发者可以快速搭建并迭代应用。...动态加载懒加载Svelte支持代码分割懒加载,这使得子应用可以根据需要动态加载,降低了首屏加载时间整体应用的内存占用。4.

6810

测试需求平台11-产品管理交互Acro必要组件掌握

✍ 此系列为整理分享已完结入门搭建《TPM提测平台》系列的迭代版,拥抱Vue3.0将前端框架替换成字节最新开源的arco.design,其中约60%重构20%新增内容,定位为从 0-1手把手实现简单的测试平台开发教程...具有数据收集、校验提交功能的表单,内部组件包含复选框、单选框、输入框、下拉选择框等,根据需要进行自由基础组件组合扩展, 基础用法 一个比较简单由input、checkbox、button 组成的表单...,在提交时候获取表单项 例子代码参考如下: 为表单主包包裹, :mode绑定组对象 为子项,filed(数据项必填)表单元素在数据对象中的path, label...标签的文本 @submit 表单提交时触发事件,参数data 等同于mode绑定form集合 更多API https://arco.design/vue/component/form#API import { reactive } from 'vue'; export default { setup() { const form = reactive

20420

前端推荐!阿里高性能表单解决方案——Formily

虽然管理做到了精确渲染,但是在触发校验的时候,还是会导致表单全量渲染,因为 errors 状态的更新,是必须要整体受控渲染才能实现同步,这仅仅只是校验会全量渲染,其实还有联动,react-hook-form...用张图来描述: 从上图可以看到,想要达成一个联动关系,核心是将字段的某些状态属性与某些数据关联起来,这里的某些数据可以是外界数据,也可以是自身数据,比如字段的显示/隐藏与某些数据的关联,又比如字段的与某些数据关联...react-jsonschema-form的解法是,数据是数据,UI 是 UI,这样的好处是,各个协议都是非常纯净的协议,但是却带来了较大的维护成本理解成本,用户要开发一个表单,需要不断的在两种协议心智上做切换...比如一个字段要控制另一个字段的显示隐藏。...如果为'123'的时候则显示 target 字段,否则隐藏,这种联动方式是一种被动联动,那如果我们希望实现主动联动呢?

3.1K20
领券