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

Angular 7,为formarray控件动态赋值

Angular 7是一种流行的前端开发框架,它提供了一种结构化的方法来构建Web应用程序。在Angular 7中,FormArray是一个用于处理动态表单控件的特殊类型。

FormArray是一个由FormControl组成的有序集合,它允许我们在表单中动态添加、删除和修改控件。通过FormArray,我们可以处理多个表单控件的值,并对其进行验证和操作。

在Angular中,我们可以使用FormBuilder来创建和管理FormArray。下面是一个示例代码,展示了如何在Angular 7中为FormArray控件动态赋值:

首先,我们需要在组件中导入相关的模块和类:

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

然后,在组件类中定义一个表单和FormArray控件:

代码语言:txt
复制
@Component({
  selector: 'app-form',
  templateUrl: './form.component.html',
  styleUrls: ['./form.component.css']
})
export class FormComponent {
  myForm: FormGroup;

  constructor(private formBuilder: FormBuilder) {
    this.myForm = this.formBuilder.group({
      myFormArray: this.formBuilder.array([])
    });
  }

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

接下来,我们可以在组件的初始化方法中动态为FormArray控件赋值:

代码语言:txt
复制
ngOnInit() {
  // 假设我们有一个包含初始值的数组
  const initialValues = ['Value 1', 'Value 2', 'Value 3'];

  // 使用初始值创建FormControl并将其添加到FormArray中
  initialValues.forEach(value => {
    this.myFormArray.push(this.formBuilder.control(value));
  });
}

最后,我们可以在模板中使用FormArray控件:

代码语言:txt
复制
<form [formGroup]="myForm">
  <div formArrayName="myFormArray">
    <div *ngFor="let control of myFormArray.controls; let i = index">
      <input [formControlName]="i" type="text">
    </div>
  </div>
</form>

在上面的示例中,我们使用ngFor指令遍历FormArray控件中的每个FormControl,并将其绑定到输入框中。

总结一下,Angular 7中的FormArray控件允许我们动态处理表单中的多个控件。通过使用FormBuilder和FormArray,我们可以轻松地为FormArray控件赋值,并在模板中使用它们。

腾讯云提供了一系列与Angular开发相关的产品和服务,例如云服务器、云数据库、云存储等。您可以在腾讯云官方网站上找到更多关于这些产品的详细信息和文档。

参考链接:

  • Angular官方文档:https://angular.io/
  • 腾讯云产品介绍:https://cloud.tencent.com/product
  • 腾讯云云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云云存储:https://cloud.tencent.com/product/cos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Angular系列教程-第四节

1.表单 Angular 提供了两种不同的方法来通过表单处理用户输入:响应式表单和模板驱动表单。...两者都从视图中捕获用户输入事件、验证用户输入、创建表单模型、修改数据模型,并提供跟踪这些更改的途径 使用’@angular/forms’库中的FormGroup, FormControl,FormArray...总结 响应式表单是动态的,模板驱动表单是固定的 2.响应式表单使用 注册ReactiveFormsModule 组件导入FormControl 模板中注册组件 控件的值(获取setvalue...和更新) formgroup使用 表单提交 更新部分内容(patchValue) 表单验证(导入Validators,设置字段属性) 表单状态(status) formarray(管理任意数量控件...max 此验证器要求控件的值小于等于指定的数字 required 此验证器要求控件具有非空值 requiredTrue 此验证器要求控件的值真 email 此验证器要求控件的值能通过 email

2.8K50
  • 移除 View Engine 转用 Ivy,盘点Angular 12的重要更新

    谷歌将 Ivy 描述下一代编译与渲染管道,能够显著提升 AOT(ahead of time)编译速度。Angular 团队提到,View Engine 将在后续版本中被彻底移除。...为了确保 Angular 能够提供良好的类型检查、快速侦测变更,Angular 官方团队一直在调整静态检查和动态构建的平台。...在更新至 Angular 12 之后,应用会通过 ng update 进行更新并自动切换为新的 API。 提供相关工具,可使用最新算法将旧版本地化 ID 迁移新 ID。...对于语言服务,新版本仅在模板中提供 Angular 属性补全功能。 对于 compiler-cli,新版本请求提供 context 选项以保障属性数据的类型安全。...向 FormArray 与 FormGroup 中引入 emitevent 选项。也是一项重大变化。 向 routerLinkActiveOptions 中引入更多微调控件

    4.4K10

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

    一、Overview angular 入坑记录的笔记第三篇,介绍 angular 中表单控件的相关概念,了解如何在 angular 中创建一个表单,以及如何针对表单控件进行数据校验。...从入坑到弃坑 - Angular 使用入门 Angular 从入坑到挖坑 - 组件食用指南 Angular 从入坑到挖坑 - 表单控件概览 三、Knowledge Graph ?...,在使用时,通过将控件的实例赋值给属性,后续则可以通过监听这个自定义的属性来跟踪表单控件的值和状态 import { Component, OnInit } from '@angular/core';...类的方式来简化的完成表单的构建 FormBuilder 服务有三个方法:control、group 和 array,用于在组件类中分别生成 FormControl、FormGroup 和 FormArray...使用 FormBuilder 构建的控件,每个控件名对应的值都是一个数组,第一个值控件的默认值,第二项和第三项则是针对这个值设定的同步、异步验证方法 import { Component, OnInit

    18.9K20

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

    首先需要操作表单的模块引入这两个模块; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; ---- 表单控件响应的几种状态...=》 可以理解获取且可以操作整个表单的数据 FormBuilder:表单数据构建工具[构建初始表单],简化构建代码(包括了new FormGroup(),new FormControl(),new...FormArray()),FormGroup()内置多种校验方式 formControlName: 同步与FormGroup构建表单内相同字段的值!...不然不会生效 // 'UserName':'', [ Validators.compose([Validators.minLength(6)] // v4+ , 第一位的''代表这个元素初始化构建空值...1[3,4,5,7,8,9]\\d{9}') || Validators.pattern('[\\.a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.

    3.8K20

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

    ---- 基础概念 国内的官网--基础 词汇表(又名计算机术语--angular2 & es6 & es7) 速查表:又名demo写法表,里面涵盖了很多写法,相当于一本小字典 关于ng2的一堆为什么:...title}} 复制代码 app.component.spec.ts: 测试用例,够繁琐,以后再说 app.components.ts:组件逻辑处理 // 导入装饰器:装饰器可以理解一些函数的封装...可以响应组件内对应的item字段值变化, |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道的参数,后续文档我写一个如何自定义管道的文章 []="":绑定组件内的值[单向,数据流向视图],指令,原生html控件的自身属性...绑定赋值的条件表达式的特殊之处: 不支持: 赋值 (=, +=, -=, ...) new运算符 使用;或,的链式表达式 自增或自减操作符 (++和--) 不支持位运算|和& 支持: 逻辑运算(...其他的一丢丢废话:若是学会了ng2技术栈,其实你过程接触了Typescript,Rxjs,es6&7

    6.2K20

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

    > {{title}} app.component.spec.ts: 测试用例,够繁琐,以后再说 app.components.ts:组件逻辑处理 // 导入装饰器:装饰器可以理解一些函数的封装...可以响应组件内对应的item字段值变化, |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道的参数,后续文档我写一个如何自定义管道的文章 []="":绑定组件内的值[单向,数据流向视图],指令,原生html控件的自身属性...绑定赋值的条件表达式的特殊之处: 不支持: 赋值 (=, +=, -=, ...)...true : false ) 直接赋值运算(item = 2); 变量传递 空值保护运算符(?.) item?.a?....(*ngIf) *ngIf="item" : 比如loading到视图全部渲染就经常用到这个,当前不在乎低版本的可以用[hidden]来控制切换,因为*ngIf这种动态渲染节点的还是有一定的性能消耗的。

    10310

    理论 | Angular 中的响应式编程 -- 浅淡 Rx 的流式思维

    作者|接灰的电子产品 原文|http://www.jianshu.com/p/925adede7c60 为什么要做响应式编程? 我给出的答案很简单:响应式编程可以让你把程序逻辑想的很清楚。...Angular 中处理响应式表单只有 3 个步骤: 1、在组件的 HTML 模版中给要处理的控件加上 formControlName="blablabla" 2、form 标签中添加 [formGroup...FormGroup; 3、在组件的构造函数中取得 FormBuilder 后(比如下面代码中的 constructor(private fb: FormBuilder) { }),用 FormBuilder 构造表单控件数组并赋值给刚才的类型...这两个数据流其实是来自于两个控件的值的变化,而响应式表单获取值的变化是非常简单的就一行: 上面这行代码的意思是从表单的控件数组中取得 formControlName  age 的这个控件然后监听其值的变化...另一个改进是 ngIf 中现在可以将评估表达式的结果赋值给一个变量,好处是什么呢?可以让你少写很多 (auth$|async) 扫码下方二维码, 随时关注更多前端干货文章!

    5.3K10

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

    近日,WijmoJS 2018V2 正式发布,提供基于VSCode/在线Web设计器,可动态设计Web页面并生成代码,提供 SASS 支持,大幅提升控件集的稳定性和速度。...WijmoJS 在本次更新中Vue V2支持增加了很多不错的功能。比如,WijmoJS 子组件现在可以在动态场景中正确工作,例如v-for和v-if指令。...JavaScript代码可以使用本机Element.addEventListener('event',handler)方法WijmoJS控件事件订阅处理程序。...WijmoJS – 深度支持Angular、React和Vue的纯前端控件集 快如闪电,触控优先。...纯前端控件集 WijmoJS,您的企业应用提供更加灵活的操作体验,在全球率先支持 AngularJS,并提供性能卓越、零依赖的 FlexGrid 和金融图表等多个控件您提供易用、轻松的操作体验,全面满足企业

    7K20

    【官宣】WijmoJS 2018 v3 正式发布,全面支持Angular7

    WijmoJS(前端开发工具包)2018年度第三个大版本已经正式发布,本次更新除了全面支持Angular7之外,还允许用户使用Web Workers在前端更高效地导出PDF、智能的分组表头属性、全新的Ribbon...本次主要更新特性有: WijmoJS 全面支持Angular7 更高效的纯前端 PDF 导出功能 智能的分组表头属性 轻松创建 Ribbon 主题示例 OLAP 数据切片器及其功能增强 葡萄城免费公开课预告...00 讲师:李欣 -- 葡萄城 WijmoJS 产品经理 直播地址: http://live.vhall.com/763947560 以下是本次更新详细内容,让我们去了解一下 WijmoJS全面支持Angular7...随着最新版Angular的发布,您已经可以使用2018 V3版本的WijmoJS来构建Angular 7应用程序了。 >>点击此处,阅读WijmoJS 全面Angular 7的技术博客。...Menu支持向下扩展子菜单 WijmoJS之前收到了一个客户的请求:Menu控件添加向下扩展子菜单的功能,这样可以帮助最终用户创建更复杂的菜单和上下文菜单。

    1.7K20

    用于H5的移动开发框架

    Titanium框架 7.Sencha Touch框架 8.Kendo UI框架 9.PhoneGap框架 10.mui框架 1 jquery mobile框架   jQuery Mobile是jQuery...Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。...AngularJS modules, 比如 angular-route, angular-touch 和 angular-animate   响应式媒体查询是将bootstrap作为单独的文件,你只需要包含你所需要的东西...playback   Taps into local filesystem and SQL lite databases   Accesses photo gallery or address data 7...,没有原生感觉,因此追求原生UI感觉也是我们的重要目标   MUI以iOS平台UI基础,补充部分Android平台特有的UI控件   流畅体验   • 下拉刷新   实现下拉刷新功能,大多H5框架都是通过

    4.9K10

    HTML5移动开发的10大移动APP开发框架

    Titanium框架 7.Sencha Touch框架 8.Kendo UI框架 9.PhoneGap框架 10.mui框架   1.jquery mobile框架   jQuery Mobile...Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。...AngularJS modules, 比如 angular-route, angular-touch 和 angular-animate   响应式媒体查询是将bootstrap作为单独的文件,你只需要包含你所需要的东西...playback   Taps into local filesystem and SQL lite databases   Accesses photo gallery or address data   7....,没有原生感觉,因此追求原生UI感觉也是我们的重要目标   MUI以iOS平台UI基础,补充部分Android平台特有的UI控件   流畅体验   • 下拉刷新   实现下拉刷新功能,大多H5框架都是通过

    6.4K10

    用于H5的移动开发框架

    框架 7.Sencha Touch框架 8.Kendo UI框架 9.PhoneGap框架 10.mui框架 1 jquery mobile框架   jQuery Mobile是jQuery 在手机上和平板设备上的版本...Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。...AngularJS modules, 比如 angular-route, angular-touch 和 angular-animate   响应式媒体查询是将bootstrap作为单独的文件,你只需要包含你所需要的东西...playback   Taps into local filesystem and SQL lite databases   Accesses photo gallery or address data 7...,没有原生感觉,因此追求原生UI感觉也是我们的重要目标   MUI以iOS平台UI基础,补充部分Android平台特有的UI控件   流畅体验   • 下拉刷新   实现下拉刷新功能,大多H5框架都是通过

    5.1K40
    领券