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

在angular 2 reactive forms中动态删除表单控件

在Angular 2 Reactive Forms中动态删除表单控件,可以通过以下步骤实现:

  1. 首先,需要在组件中创建一个表单控件数组,用于存储动态添加的表单控件。例如,可以使用FormArray来实现:
代码语言:typescript
复制
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl, 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() { }

  ngOnInit() {
    this.myForm = new FormGroup({
      formControls: new FormArray([])
    });
  }

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

  addFormControl() {
    this.formControls.push(new FormControl());
  }

  removeFormControl(index: number) {
    this.formControls.removeAt(index);
  }
}
  1. 在模板中,可以使用ngFor指令来循环显示表单控件,并为每个控件提供删除按钮。当点击删除按钮时,调用组件中的removeFormControl方法来删除对应的表单控件。
代码语言:html
复制
<form [formGroup]="myForm">
  <div formArrayName="formControls">
    <div *ngFor="let control of formControls.controls; let i = index">
      <input [formControlName]="i">
      <button (click)="removeFormControl(i)">删除</button>
    </div>
  </div>
</form>
<button (click)="addFormControl()">添加表单控件</button>

通过以上步骤,就可以在Angular 2 Reactive Forms中实现动态删除表单控件的功能。每次点击"添加表单控件"按钮,都会在表单中动态添加一个新的表单控件,并且为每个控件提供删除按钮。当点击删除按钮时,对应的表单控件会被从表单中删除。这种方式可以灵活地管理表单控件的数量和内容。

推荐的腾讯云相关产品:腾讯云云服务器(CVM),腾讯云对象存储(COS),腾讯云数据库MySQL版(TencentDB for MySQL),腾讯云人工智能(AI)服务等。你可以通过访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用指南。

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

相关·内容

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

一、Overview angular 入坑记录的笔记第三篇,介绍 angular表单控件的相关概念,了解如何在 angular 创建一个表单,以及如何针对表单控件进行数据校验。...name 属性则是 angular 用来注册控件的 key,所以表单中使用 ngModel 进行双向数据绑定时,必须要添加 name 属性 4.2.2、跟踪表单控件的状态 表单中使用 ngModel...4.3.2、通过 FomGroup 组合多个控件 一个表单不可能只有一个控件,通过组件构造 FormGroup 实例来完成对于多个表单控件的统一管理 使用 FormGroup 时,同样组件定义一个属性用来承载控件组实例...,响应式表单同样可以使用原生的表单验证器,设定规则时,需要将模板控件名对应的数据值的第二个参数改为验证的规则 响应式表单,数据源来源于组件类,因此应该在组件类中直接把验证器函数添加到对应的...模板驱动表单,因为不是直接使用的 FormControl 实例,因此这里应该在模板上添加一个自定义的指令来完成对于控件数据的校验 使用 angular cli 创建一个用来进行表单验证的指令 ng

18.9K20
  • Angular6自定义表单控件方式集成Editormd

    (isDisabled: boolean): void; } writeValue:初始化的时候将formControl的值传递给原生表单控件(即,将模型的新值写入视图或 DOM 属性); registerOnChange...:用来获取原生表单控件的值更新时通知Angular表单控件更新的函数(即,设置当控件接收到 change 事件后,调用的函数) registerOnTouched:用来获取通知用户正在交互的函数(即,设置当控件接收到...- 用于 select 选择控件 - CheckboxControlValueAccessor - 用于 checkbox 复选控件 至于原生表单控件Angular表单控件能够保持一致的原理,可以看下...formControl指令的实现: // https://github.com/angular/angular/blob/master/packages/forms/src/directives/reactive_directives... 参考资料 Angular 4.x 自定义表单控件 【荐】深入Angular自定义表单控件 Angular集成Editor.md的Markdown编辑器,支持NgModel

    5.2K20

    AngularDart4.0 指南- 表单

    使用跟踪控件状态的特殊CSS类提供视觉反馈。 向用户显示验证错误并启用/禁用表单控件。 使用模板引用变量HTML元素之间共享信息。 您可以Plunker运行实例(查看源代码)并从那里下载代码。...模板驱动的形式 您可以通过使用本页描述的特定于表单的指令和技术Angular模板语法编写模板来构建表单。 您也可以使用响应式(或模型驱动)方法来构建表单。...添加angular_forms Angular表单功能位于angular_forms,该库位于其自己的包。 将该包添加到pubspec依赖项: ?...你还没有使用Angular。 没有绑定或额外的指令,只是布局。 模板驱动的表单,如果已经导入了angular_forms库,则不必为了使用库功能而对标记执行任何操作。...靠近表单顶部的诊断确认所有的更改都反映在model。 从模板删除诊断绑定,因为它已经达到了目的。 根据控制状态给出视觉反馈 使用CSS和类绑定,您可以更改表单控件的外观以反映其状态。

    17.5K30

    Angular 2 表单(下)

    每一个 input 元素都有一个 name 属性, Angular表单模块需要使用它为表单注册控制器。 运行以上实例输出结果如下: {{diagnostic}} 只是用于测试时候输出数据使用。...状态 为 true 时的类 为 false 时的类 控件已经被访问过 ng-touched ng-untouched 控件值已经变化 ng-dirty ng-pristine 控件值是有效的 ng-valid... angular-forms 目录下创建 forms.css 文件,代码如下: forms.css 文件: .ng-valid[required], .ng-valid.required { border-left...删除掉 name 字段的数据,显示结果如下所示: 添加一个网站 接下来我们创建一个用于添加网站的表单 app/site-form.component.html 添加一个按钮: app/site-form.component.html...通过 ngSubmit 来提交表单 我们可以使用 Angular 的指令 NgSubmit 来提交表单, 并且通过事件绑定机制把它绑定到 SiteFormComponent.submit() 方法上。

    1.7K10

    Angular 2 + 折腾记 :(7) 初步了解表单:模板驱动及数据驱动及脱坑要点

    前言 表单在整个系统的作用相当重要,这里主要扯下响应表单的实现方式。...首先需要操作表单的模块引入这两个模块; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; ---- 表单控件响应的几种状态...; Submit()函数内,点击提交的时候对整个表单一一去判断,传统方式基本这样 每个控件输入的时候对应去触发对应的事件做校验,比如[ngModelChange]来处理双向绑定的值校验 ---- 数据驱动...(Reactive Form) 响应式表表单:原理是一开始就构建整个表单表单的值通过特殊指令formControlName一一关联(类似ngModel); 相关名词: FormGroup: 用来追踪表单控件有效状态及值..., FormBuilder } from '@angular/forms'; // 引入表单的一些特性 // 动画 import { fadeIn } from '../../../../..

    3.8K20

    (转) 别再对 Angular 表单的 ControlValueAccessor 感到迷惑

    原文链接:Never again be confused when implementing ControlValueAccessor in Angular forms 如果你正在做一个复杂项目,必然会需要自定义表单控件...本文我将使用原生表单控件术语来区分 Angular 特定的 formControl 和你 html 使用的表单控件,但你需要知道任何一个自定义表单控件都可以和 formControl 指令进行交互,而不是原生表单控件如...,当 Angular 组件模板遇到 input 或 textarea DOM 原生控件时,会使用DefaultValueAccessor 指令: @Component({ selector:...组件封装器 由于 Angular 为所有默认原生控件提供了控件值访问器,所以封装第三方插件或组件时,需要写一个新的控件值访问器。...(译者注:作者先实现标准的输入输出属性绑定的通信方式,又要删除,主要是为了引入新的表单组件交互方式,即 ControlValueAccessor。)

    3.8K20

    Angular系列教程-第四节

    1.表单 Angular 提供了两种不同的方法来通过表单处理用户输入:响应式表单和模板驱动表单。...两者都从视图中捕获用户输入事件、验证用户输入、创建表单模型、修改数据模型,并提供跟踪这些更改的途径 使用’@angular/forms’库的FormGroup, FormControl,FormArray...,FormBuilder 等类构建出的数据对象就是响应式的表单,响应式的表单,我们会在数据源里面进行各种操作,像添加校验等,html文件中使用 formGroup,formGroupName,formControlName...等将数据和视图进行绑定(需要引入ReactiveFormsModule) 模板驱动的表单是我们实例化好一个类的数据之后,html中使用 NgForm 指令后将数据和表单进行绑定,使用[(ngModel...总结 响应式表单动态的,模板驱动表单是固定的 2.响应式表单使用 注册ReactiveFormsModule 组件导入FormControl 模板中注册组件 控件的值(获取setvalue

    2.8K50

    angular面试题及答案_angular面试

    指令分类 组件:用于构建UI组件,继承于Directive类 属性指令:用于改变组件的外观或行为 ngClass ngStyle 结构指令:用于动态添加或删除DOM元素来改变DOM布局 ngIf ngFor...如何优化Angular 2应用程序来获得更好的性能? 1)考虑AOT编译。 2)确保应用程序已经经过了捆绑,uglify和tree shaking。...32.模板驱动表单和 响应式表单的比较 Template-Driven Forms (模板驱动表单) 的特点 使用方便 适用于简单的场景 通过 [(ngModel)] 实现数据双向绑定...最小化组件类的代码 不易于单元测试 Reactive Forms (响应式表单) 的特点 比较灵活 适用于复杂的场景 简化了HTML模板的代码,把验证逻辑抽离到组件类...方便的跟踪表单控件值的变化 易于单元测试 33.

    11.1K120

    纯前端控件集 WijmoJS 2018V2发布,React、Vue和Angular更易用

    近日,WijmoJS 2018V2 正式发布,提供基于VSCode/在线Web设计器,可动态设计Web页面并生成代码,提供 SASS 支持,大幅提升控件集的稳定性和速度。...开发人员可以实时更改属性和绑定事件,并将所做更改保存回 Angular应用程序。 要在VSCode安装此扩展,请单击VS Marketplace上Designer设置的“安装”按钮。...或者,还可以VSCode的扩展管理器搜索“wijmo”并从那里安装。 安装后重新加载VSCode。 然后打开一个使用WijmoJS 控件Angular应用程序并尝试启动设计器。...Wijmo Crypto Currency App 支持Vue V2的集成增强功能 随着Vue的不断发展,WijmoJS也不断改进,以适应其变化。...WijmoJS 本次更新为Vue V2支持增加了很多不错的功能。比如,WijmoJS 子组件现在可以动态场景中正确工作,例如v-for和v-if指令。

    7K20

    Angular 2.x折腾记 :(2)初步认识angular2,不一样的开发模式

    ,从根节点无限发散 import { NgModule } from '@angular/core'; // 表单模块,比如你要在组件内用到一些表单元素或者数据绑定,不然会报错...import { FormsModule } from '@angular/forms'; // rest风格的请求模块 import { HttpModule } from..., |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道的参数,后续文档我写一个如何自定义管道的文章 []="":绑定组件内的值[单向,数据流向视图],指令,原生html控件的自身属性[value...true : false ) 直接赋值运算(item = 2); 变量传递 空值保护运算符(?.) item?.a?....总结 这一篇没有涉及到路由这些和表单这些; 准备拆成两个文章来说; 路由的配置及懒加载这些, 模板驱动的表单及响应式表单[嵌套表单响应等],回车键触发搜索等。。

    10510

    Angular 2 + 折腾记 :(2)初步认识angular2,不一样的开发模式

    ---- 基础概念 国内的官网--基础 词汇表(又名计算机术语--angular2 & es6 & es7) 速查表:又名demo写法表,里面涵盖了很多写法,相当于一本小字典 关于ng2的一堆为什么:...,从根节点无限发散 import { NgModule } from '@angular/core'; // 表单模块,比如你要在组件内用到一些表单元素或者数据绑定,不然会报错...import { FormsModule } from '@angular/forms'; // rest风格的请求模块 import { HttpModule } from '@angular..., |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道的参数,后续文档我写一个如何自定义管道的文章 []="":绑定组件内的值[单向,数据流向视图],指令,原生html控件的自身属性[value...---- 总结 这一篇没有涉及到路由这些和表单这些; 准备拆成两个文章来说; 路由的配置及懒加载这些, 模板驱动的表单及响应式表单[嵌套表单响应等],回车键触发搜索等。。

    6.2K20

    vue3,后台管理列表页面各组件之间的状态关系 管理类的功能:查询分页添加、修改删除

    技术栈 vite2 vue 3.0.5 vue-router 4.0.6 vue-data-state 0.1.1 element-plus 1.0.2-beta.39 前情回顾 表单控件 查询控件 轻量级状态管理...前面介绍的表单控件和查询控件,都是原子性的,实现自己的功能即可。...动态菜单 根据用户权限加载需要的菜单。 动态 tab 点击一下左面的菜单,创建一个新的tab,然后加载对应的组件,一般是列表页面(组件),也可以是其他页面(组件)。...文件结构 基础功能搭建好了之后,剩下的就简单了,建立组件设置模板、控件、组件和使用状态即可。 总体结构如下: ? 列表状态的使用 基础工作做好之后我们来看看,各个组件里面是如何使用状态的。...model const model = reactive({}) // 表单控件需要的属性 const formProps = reactive({reload:false})

    2K20

    常用的表单元素有哪些_h5新增的表单元素属性

    今天小课堂的主要内容是,input表单的应用,还有html5新增的属性。 表单元素是允许用户表单(比如:文本域,下拉列表,单选框,复选框等等)输入信息的元素,最主要的作用就是收集信息。...表单元素是页面不可缺少的元素,最新的H5表单元素也新增了一些属性,页面构建中发挥了重要的作用。一般来说,表单包含如下几个部分: 1. 提示信息:表单包含的说明性文字 2....表单控件:包含了具体的表单功能项 3. 表单域:容纳所有表单控件和提示信息 常用的表单元素,包括: 1. form: 定义供用户输入的表单2. fieldset: 定义域。...,默认为”get”(也可以是post) name:控件名称;value:input控件默认文本值;size:input控件页面的显示宽度...使用input上传文件或图片应该怎么办 涉及到angularjs,可参考插件https://github.com/nervgh/angular-file-upload 2. input为什么不使用闭合标签

    3.4K30
    领券