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

是否有更好的方法将值推送到具有数组作为Angular中的值的表单控件

在Angular中,如果要将值推送到具有数组作为值的表单控件,可以使用FormArray来实现。FormArray是一个特殊的FormControl,它允许我们在表单中动态添加和删除多个FormControl。

下面是一种将值推送到具有数组作为值的表单控件的方法:

  1. 首先,在组件中创建一个FormArray对象,并将其初始化为空数组:
代码语言:txt
复制
import { Component, OnInit } from '@angular/core';
import { FormArray, FormControl, FormGroup } 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;

  ngOnInit() {
    this.myForm = new FormGroup({
      myArray: new FormArray([])
    });
  }
}
  1. 在模板中,使用ngFor指令遍历FormArray,并为每个数组元素创建一个FormControl:
代码语言:txt
复制
<form [formGroup]="myForm">
  <div formArrayName="myArray">
    <div *ngFor="let control of myForm.get('myArray').controls; let i = index">
      <input [formControlName]="i">
    </div>
  </div>
</form>
  1. 在组件中,可以通过FormArray的push方法向数组中添加新的FormControl:
代码语言:txt
复制
addControl() {
  const control = new FormControl();
  (this.myForm.get('myArray') as FormArray).push(control);
}
  1. 最后,在模板中添加一个按钮,当点击按钮时调用addControl方法:
代码语言:txt
复制
<button (click)="addControl()">Add Control</button>

这样,每次点击按钮时,就会向表单中的FormArray添加一个新的FormControl,从而实现将值推送到具有数组作为值的表单控件。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云云数据库MySQL。腾讯云云服务器提供了可靠、安全、高性能的云计算服务,可满足各种规模和业务需求。腾讯云云数据库MySQL是一种高性能、可扩展的关系型数据库服务,适用于各种应用场景。

腾讯云云服务器产品介绍链接地址:https://cloud.tencent.com/product/cvm 腾讯云云数据库MySQL产品介绍链接地址:https://cloud.tencent.com/product/cdb_mysql

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

相关·内容

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

实例对应于一个表单控件,在使用时,通过控件实例赋值给属性,后续则可以通过监听这个自定义属性来跟踪表单控件和状态 import { Component, OnInit } from '@angular...通过使用 FormControl 控件 value 属性,可以获得当前表单控件一份数据拷贝,通过 setValue 方法则可以更新表单控件 import { Component, OnInit...,然后控件每一个控件作为属性添加到实例 import { Component, OnInit } from '@angular/core'; // 引入 FormControl 和 FormGroup...使用 FormBuilder 构建控件,每个控件名对应都是一个数组,第一个控件默认,第二项和第三项则是针对这个设定同步、异步验证方法 import { Component, OnInit...4.4、表单自定义数据验证 4.4.1、自定义验证器 在很多情况下,原生验证规则无法满足我们需要,此时需要创建自定义验证器来实现 对于响应式表单,我们可以定义一个方法,对控件数据进行校验,之后方法作为参数添加到控件定义处即可

18.9K20

AngularDart4.0 指南- 表单

一路上你学习如何: 用组件和模板构建一个Angular表单。 使用ngModel创建读取和写入输入控制双向数据绑定。 跟踪状态变化和表单控件有效性。...模板驱动形式 您可以通过使用本页描述特定于表单指令和技术在Angular模板语法编写模板来构建表单。 您也可以使用响应式(或模型驱动)方法来构建表单。...跟踪控制状态 Angular表单控件可以告诉您用户是否触摸了该控件是否改变,或者该是否失效。...touched和untouched指示控件是否被访问过。 valid反映了控制有效性。 样式控件 有效控制属性是最有趣,因为当一个控制无效时,你想发送一个强烈视觉信号。...删除#spy模板引用变量和使用它诊断。 作为类绑定替代方法,可以使用NgClass指令来设置控件样式。

17.5K30
  • (转) 别再对 Angular 表单 ControlValueAccessor 感到迷惑

    然后我展示如何封装第三方组件作为 Angular 组件,以及如何使用输入输出机制实现组件间通信(译者注:Angular 组件间通信输入输出机制可参考官网文档),最后展示如何使用 ControlValueAccessor...input,textarea 进行交互,并且很有可能需要自定义一个表单控件作为 Angular 组件而不是使用原生表单控件,而通常自定义表单控件会封装一个使用纯 JS 写控件如 jQuery UI's...),你需要把更新传给这个回调函数,这样对应 Angular 表单控件也会更新(译者注:这一点可以参考 Angular 它自己写 DefaultValueAccessor 写法是如何把 input...控件每次更新传给回调函数,L52 和 L89);使用 registerOnTouched 方法来注册用户和控件交互时触发回调(译者注:你可能会参考 L95)。...表单控件是如何数据同步(译者注:作者贴可能是 Angular v4.x 代码,v5 了点小小变动,但基本相似): export function setUpControl(control: FormControl

    3.8K20

    angularjs 表单验证

    二、表单控制变量 屏蔽浏览器对表单默认验证行为 在表单元素上添加novalidate标记即可,问题是我们怎么知道我们表单哪些字段是有效,那些事非法或者无效?...$parsers  $parsers是一个由函数组数组,当用户同控制器进行交互,并且ngModelController$setViewValue()方法被调用时,其中函数在当用户同控制器进行交互...它和$parser流水线互不影响,用来对进行格式化和转换,以便在绑定了这个控件显示。  ...$dirty $dirty和$pristine相反,可以告诉我们用户是否控件进行过交互。 $valid $valid可以告诉我们当前控件是否有错误。...$invalid $invalid可以告诉我们当前控件是否存在至少一个错误,它和$valid相反。

    6.7K70

    Angular 6.x 表单快速入门

    比较灵活 适用于复杂场景 简化了HTML模板代码,把验证逻辑抽离到组件类 手动创建 Form Model (同步) 方便跟踪表单控件变化 易于动态添加表单控件 易于单元测试 本文主要介绍...目前 Angular 支持内建 validators 如下: required - 设置表单控件是非空 email - 设置表单控件格式是 email min - 设置表单控件最小 max...- 设置表单控件最大 minlength - 设置表单控件最小长度 maxlength - 设置表单控件最大长度 pattern - 设置表单控件需匹配 pattern 对应模式...在 Angular ,我们可以通过 #userName="ngModel" 方式获取 ngModel 对象,然后通过 userName.valid 判断表单控件是否通过验证。...在 Angular表单控件以下状态,我们可以通过 #userName="ngModel" 方式获取 ngModel 对象,进而获取控件状态信息。

    4.6K20

    Angular: 最佳实践

    , status: Statuses.Read} ]; } 复制代码 所以,现在我们一个基本组件(实际上就是一个容器),我们组件可以从中派生以重用应用程序全局方法。...所以,下面有几条规则需要考虑下: 一个 API 调用基础服务类。简单 HTTP 服务逻辑放在基类,并从中派生 API 服务。...比如,你想在模版为未正确填写表单控件添加 has-error 类(也就是说并非所有的校验都通过)。...如果我们更多表单控件,那么它会使得视图更加混乱,并且创建了很多重复逻辑。...所以本文着重介绍 Angular 应用 TypeScript 内容。 希望本文能够帮助你编写更干净代码,帮你更好组织你应用结构。

    2.8K40

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

    响应式表单 Rx Angular 表单处理非常强大,模版驱动表单和响应式表单两类,两种表单各有千秋,在不同场合可以分别使用,甚至混合使用,但这里就不展开了。...Angular 处理响应式表单只有 3 个步骤: 1、在组件 HTML 模版给要处理控件加上 formControlName="blablabla" 2、form 标签添加 [formGroup...比如下面代码 constructor(private fb: FormBuilder) { }),用 FormBuilder 构造表单控件数组并赋值给刚才类型为 FormGroup 成员变量。...这两个数据流其实是来自于两个控件变化,而响应式表单获取值变化是非常简单就一行: 上面这行代码意思是从表单控件数组取得 formControlName 为 age 这个控件然后监听其变化...这个 else 可以携带一个模版引用。比如下面例子:如果用户登录成功显示用户名,否则显示登录链接。 另一个改进是 ngIf 现在可以评估表达式结果赋值给一个变量,好处是什么呢?

    5.3K10

    深入讲解 ASP+ 验证

    我们研究了大量数据输入表单,试图找到可以适用于尽可能多表单一种解决方案。我们发现,数据输入表单具有许多有趣特性: 尽管错误信息或图标经常与输入元素相邻,但是它们几乎总是位于表不同单元格。...在大多数组件环境,例如 Microsoft® ActiveX®,我们可能本来试图所有验证控件功能集成到一个控件,处理不同模式下不同属性。...Page 对象属性和方法 属性或方法 说明 IsValid 属性 这是最有用属性。该属性可以检查整个表单是否有效。通常在更新数据库之前进行该检查。...因此,如果要使用 CustomValidator,则不应提供没有相应服务器验证函数客户机验证函数。 每个验证控件都可以确保一个标准客户端脚本块发送到页面。...其中有一些确认是否有效规则,开始,您作为一个开发人员可能会有些混淆,但是如果要生成对用户实际帮助错误信息,这些规则是必要

    5.3K10

    Angular系列教程-第四节

    1.表单 Angular 提供了两种不同方法来通过表单处理用户输入:响应式表单和模板驱动表单。...两者都从视图中捕获用户输入事件、验证用户输入、创建表单模型、修改数据模型,并提供跟踪这些更改途径 使用’@angular/forms’库FormGroup, FormControl,FormArray...等数据和视图进行绑定(需要引入ReactiveFormsModule) 模板驱动表单是我们实例化好一个类数据之后,在html中使用 NgForm 指令后数据和表单进行绑定,使用[(ngModel...)]来表单数据和和视图进行双向绑定,NgForm 指令为 form 增补了一些额外特性。....内置验证器 min 此验证器要求控件大于或等于指定数字 max 此验证器要求控件小于等于指定数字 required 此验证器要求控件具有非空 requiredTrue 此验证器要求控件为真

    2.8K50

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

    可设置type属性,从而具有不同功能。 6. textarea: 定义文本域(一个多行输入控件),默认可通过鼠标拖动调整大小。 7. button: 定义一个按钮。...,默认为”get”(也可以是post) name:控件名称;value:input控件默认文本;size:input控件在页面显示宽度...相似的formtarget特性。 5. readonly:一个boolean,表明该input是否能被用户修改,可用于信息展示等页面。...7. autocomplete:浏览器是否根据之前提交输入情况对此input自动填(即以option形式匹配之前输入),取值on或off,默认on。...如发现本站涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站立刻删除。

    3.4K30

    最受欢迎10大Angular技巧

    通过全局对象作为令牌(token),你可以放心地使用、替换和测试代码。 ? https://twitter.com/marsibarsi/status/1274662852079517697?...s=20 控件为 ReplaySubject 在某些情况下,你需要订阅控件 valueChanges 并获取其当前。不要重新发明轮子,只需这样做即可: ?...管道 Angular 是非常强大选项。它使我们能够遵循组件模板内部声明性方法。...令我有些难过是,一些 Angular 开发人员不喜欢创建自己管道,可其实你几乎可以在任何数据转换场景创建管道。 这是适用于许多情况通用管道示例: ?...s=20 小 结 Angular 是一个很大主题,能说东西还有很多。我很多关于新技巧想法,准备与社区分享我最佳实践。

    2.1K40

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

    ,ng2开发模式就是类似一个树,从根节点无限发散 import { NgModule } from '@angular/core'; // 表单模块,比如你要在组件内用到一些表单元素或者数据绑定..., |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道参数,后续文档我写一个如何自定义管道文章 []="":绑定组件内[单向,数据流向视图],指令,原生html控件自身属性[value...b : 会判断item是否a这个,防止undefined或者null让视图渲染报错 ---- 最最最常用内置指令 样式绑定(ngClass) [ngClass]或者[ngStyle]:可以传递一个对象...---- 总结 这一篇没有涉及到路由这些和表单这些; 准备拆成两个文章来说; 路由配置及懒加载这些, 模板驱动表单及响应式表单[嵌套表单响应等],回车键触发搜索等。。...发现文章有错误,或者更好讲解,请留言指出,我会及时修正,谢谢! 其他一丢丢废话:若是学会了ng2技术栈,其实你过程接触了Typescript,Rxjs,es6&7等

    6.2K20

    Angularjs基础(七)

    AngularJS表单     AngularJS表单时输入控件集合 HTML控件     一下HTML input 元素被称为HTML 控件:         input 元素         ...formCtrl 函数设置了mater 对象初始,并定义了reset()方法。           reset() 方法设置了user 对象等于master对象。           ...novalidate 属性在应用不是必须,但是你需要在 AngularJS 表单中使用,用于重写标准 HTML5 验证。...AngularJS输入验证     AngularJS表单控件可以验证输入数据。 输入验证     AngularJS表单控件可以提供验证功能,并对用户输入非法数据惊醒警告。...      angular.isString() 判断给定对象是否为字符串,如果是返回true.

    2K70

    Angular 5.0.0发布!

    构建优化器是CLI一个工具,它基于我们对你Angular应用理解,可以把构建后包变得更小。 构建优化器两个主要任务。...通过把状态从服务器传送到客户端,开发者就不用再发第二次HTTP请求了。状态转交相关文档几周后会发布。 Angular Universal团队还把平台服务器Domino加到了平台服务器。...保留空白 过去编译器会忠实地复现并在模板包含制表符、换行符和空白。现在你可选择是否在组件和应用包含空白了。 可以在每个组件装饰器中指定这个配置,而当前默认为true。...Angular表单添加updateOn Blur/Submit 这样可以根据 blur或 submit来运行验证和更新逻辑了,不必再单纯依赖input事件。...表单对应用很重要,如果有服务端验证,或者验证或更新会触发较慢操作,你当然希望它少跑几次。现在你可以在控件层面控制验证和更新时机了,也可以在表单层面设置。

    4.4K40

    走进AngularJs(二) ng模板中常用指令使用方式

    本篇我搜罗模板常用指令一一测试,了解其使用方法,有点像背单词感觉,会比较枯燥。...过滤器通常是伴随标记来使用,将你model数据格式化为需要格式。表单控制功能主要涉及到数据验证以及表单控件增强。   在这里必要说明一下表达式概念,毕竟我们模板中大部分使用都是变量。...,数组每一项都会层叠起来生效;   3) 一个名对应map,其键值为类名,为boolean类型,当值为true时,该类会被加在元素上。   ...框架会用display:block和display:none来控制元素显隐。 三、表单控件功能相关   对于常用表单控件功能,ng也做了封装,方便灵活控制。   ...学英语两种方法,一种是先做题,遇到不会单词再查,另一种是先拿着单词本背。尽管专家好像更推荐前者,但如果你现在一窍不通,还是老老实实先背单词吧~

    2.9K20

    Angular12个经典问题,看看你能答对几个?(文末附带Angular测试)

    Angular作为目前最为流行前端框架,受到了前端开发者普遍欢迎。...Angular应用程序具有路由器服务单个实例,并且每当URL改变时,相应路由就与路由配置数组进行匹配。...在成功匹配时,它会应用重定向,此时路由器会构建ActivatedRoute对象树,同时包含路由器的当前状态。在重定向之前,路由器通过运行保护(CanActivate)来检查是否允许新状态。...它是如何在Angular 2工作Angular 2不具有双向digest cycle,这是与Angular 1不同。...这通常用在setter,当类被更改完成时。 可以通过模块任何一个组件,使用订阅方法来实现事件发射订阅。

    17.3K80

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

    模板语句通常包含一个接收器,它响应事件执行一个动作,例如HTML控件存储到模型。 绑定通过一个名为$event事件对象来传递关于该事件信息,包括数据。 事件对象形状由目标事件决定。...Angular为所有基本HTML表单元素提供访问器,Forms指南展示了如何绑定到它们。...是否有理由回到扩展形式? [(ngModel)]语法只能设置数据绑定属性。 如果您需要做更多或不同事情,您可以编写扩展表单。...heroForm是什么? heroForm是一个Angular NgForm指令引用,可以跟踪表单每个控件和有效性。 原生元素没有form属性。...但是NgForm指令,它解释了如果heroForm.form.valid无效并且整个表单控件树传递给父组件onSubmit方法,您可以禁用提交按钮。

    30K20
    领券