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

Angular -如何在ngFor循环表中使用表单控件

Angular是一种流行的前端开发框架,它使用TypeScript编写并由Google维护。下面是关于如何在ngFor循环表中使用表单控件的详细答案:

在Angular中,可以使用ngFor指令来循环渲染一个列表。如果需要在循环表中使用表单控件,可以采取以下步骤:

  1. 首先,在组件类中定义一个表单组,用于存储循环表中每个表单控件的值。例如,可以使用FormGroup或FormArray。
  2. 在HTML模板中,使用ngFor指令循环遍历列表,并为每个列表项创建一个表单控件。可以使用FormControl或FormBuilder来创建表单控件。
  3. 在每个表单控件上绑定[(ngModel)]指令,以便将表单控件的值与表单组中对应的属性进行双向绑定。这样可以确保表单控件的值与表单组中相应属性的值保持同步。

下面是一个示例,演示如何在ngFor循环表中使用表单控件:

  1. 首先,定义一个组件类,其中包含一个表单组和一个列表:
代码语言:txt
复制
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';

@Component({
  selector: 'app-example',
  templateUrl: './example.component.html',
  styleUrls: ['./example.component.css']
})
export class ExampleComponent {
  form: FormGroup;
  items: string[] = ['item1', 'item2', 'item3'];

  constructor(private fb: FormBuilder) {
    this.form = this.fb.group({});
    this.items.forEach((item, index) => {
      this.form.addControl('item' + index, this.fb.control('', Validators.required));
    });
  }
}
  1. 在HTML模板中,使用ngFor指令循环渲染列表,并为每个列表项创建一个表单控件:
代码语言:txt
复制
<form [formGroup]="form">
  <div *ngFor="let item of items; let i = index">
    <input type="text" [formControlName]="'item' + i" [(ngModel)]="items[i]">
  </div>
</form>

在这个示例中,通过ngFor指令循环渲染了一个由items数组定义的列表,并为每个列表项创建了一个表单控件。使用[formControlName]指令将表单控件绑定到表单组中的对应属性,并使用[(ngModel)]指令实现双向绑定。

这样,在循环表中使用表单控件后,你就可以通过表单组的值来获取循环表中每个表单控件的值。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云前端开发服务:https://cloud.tencent.com/product/codestar
  • 腾讯云Serverless Framework:https://cloud.tencent.com/product/sf
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AngularDart4.0 指南- 表单

使用跟踪控件状态的特殊CSS类提供视觉反馈。 向用户显示验证错误并启用/禁用表单控件使用模板引用变量在HTML元素之间共享信息。 您可以在Plunker运行实例(查看源代码)并从那里下载代码。...模板驱动的形式 您可以通过使用本页描述的特定于表单的指令和技术在Angular模板语法编写模板来构建表单。 您也可以使用响应式(或模型驱动)方法来构建表单。...你会看到一个样式化的表单使用* ngFor添加powers 英雄必须从一个固定的机构批准的权力列表中选择一个超级大国。 您在内部维护该列表(在HeroFormComponent)。...您将在表单添加一个select,并使用ngFor(先前在“显示数据”页面中看到的一种技术)将选项绑定到powers列表。...您将看到表格显示的英雄模型值(只读)。 ? 该视图包含一个编辑按钮,其单击事件绑定将清除提交的标志。 当您单击编辑按钮时,该消失,并且可编辑的表单重新出现。

17.5K30
  • 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

    Angular--Module的使用

    NgModule 可以将其组件和一组相关代码(服务)关联起来,形成功能单元。...exports(导出) —— 用于其它模块的组件模板中使用的声明对象的子集(the subset of declarations)。...imports(导入) —— 其他模块,本NgModule声明的组件需要使用它们的导出类。 providers —— 本模块向全局服务贡献的那些服务的创建器。 这些服务能被本应用的任何部分使用。...app 时 CommonModule @angular/common 当你想要使用NgIf 和NgFor时 FormsModule @angular/forms 当要构建模板驱动表单时 ReactiveFormsModule...@angular/forms 当要构建响应式表单时 RouterModule @angular/router 当要使用路由功能,并且你要用到RouterLink, forRoot() 和.forChild

    4.9K40

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

    使用HTML表单元素(和)的双向绑定会很方便。 但是,没有原生HTML元素遵循x值和xChange事件模式。...字符串“let hero of heroes”是指: 取英雄列表的每个英雄,将其存储在本地英雄循环变量,并使其可用于每次迭代的模板HTML。...* ngFor与index(索引) NgFor指令上下文的index属性返回每个迭代项目的从零开始的索引。 您可以捕获模板输入变量的index,并在模板中使用它。...heroForm是一个Angular NgForm指令的引用,可以跟踪表单每个控件的值和有效性。 原生元素没有form属性。...但是NgForm指令有,它解释了如果heroForm.form.valid无效并且将整个表单控件树传递给父组件的onSubmit方法,您可以禁用提交按钮。

    29.9K20

    Angular 2 表单(下)

    修改 app/site-form.component.html ,使用 ngModel 把我们的表单绑定到模型。...每一个 input 元素都有一个 name 属性, Angular表单模块需要使用它为表单注册控制器。 运行以上实例输出结果如下: {{diagnostic}} 只是用于测试时候输出数据使用。...我们还可以通过 ngModel 跟踪修改状态与有效性验证,它使用了三个 CSS 类来更新控件,以便反映当前状态。...状态 为 true 时的类 为 false 时的类 控件已经被访问过 ng-touched ng-untouched 控件值已经变化 ng-dirty ng-pristine 控件值是有效的 ng-valid...通过 ngSubmit 来提交表单 我们可以使用 Angular 的指令 NgSubmit 来提交表单, 并且通过事件绑定机制把它绑定到 SiteFormComponent.submit() 方法上。

    1.7K10

    Angular系列教程-第四节

    1.表单 Angular 提供了两种不同的方法来通过表单处理用户输入:响应式表单和模板驱动表单。...两者都从视图中捕获用户输入事件、验证用户输入、创建表单模型、修改数据模型,并提供跟踪这些更改的途径 使用’@angular/forms’库的FormGroup, FormControl,FormArray...,FormBuilder 等类构建出的数据对象就是响应式的表单,在响应式的表单,我们会在数据源里面进行各种操作,像添加校验等,在html文件中使用 formGroup,formGroupName,formControlName...总结 响应式表单是动态的,模板驱动表单是固定的 2.响应式表单使用 注册ReactiveFormsModule 组件导入FormControl 模板中注册组件 控件的值(获取setvalue...和更新) formgroup使用 表单提交 更新部分内容(patchValue) 表单验证(导入Validators,设置字段属性) 表单状态(status) formarray(管理任意数量控件

    2.8K50

    Angular 6.x 快速入门

    第二节 - 插值表达式 在 Angular ,我们可以使用插值语法实现数据绑定。...基础知识 定义组件的元信息 在 Angular ,我们可以使用 Component 装饰器来定义组件的元信息: @Component({ selector: 'my-app', // 用于定义组件在... ngFor 指令简介 该指令用于基于可迭代对象的每一项创建相应的模板。它与 AngularJS 1.x 的 ng-repeat 指令的功能是等价的。... ngIf 与 ngFor 指令使用示例 import { Component } from '@angular/core'; interface Address { province...1.x 表单 ) Reactive Forms - 响应式表单 本小节主要介绍模板驱动式的表单,接下来我们来演示如何通过表单来为我们的之前创建的 UserComponent 组件,增加让用户自定义技能的功能

    14.1K20

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

    ---- 基础概念 国内的官网--基础 词汇(又名计算机术语--angular2 & es6 & es7) 速查表:又名demo写法,里面涵盖了很多写法,相当于一本小字典 关于ng2的一堆为什么:.../core'; // 表单模块,比如你要在组件内用到一些表单元素或者数据绑定,不然会报错 import { FormsModule } from '@angular/forms';...一般用于表单比较多。...绑定赋值的条件表达式的特殊之处: 不支持: 赋值 (=, +=, -=, ...) new运算符 使用;或,的链式表达式 自增或自减操作符 (++和--) 不支持位运算|和& 支持: 逻辑运算(...---- 总结 这一篇没有涉及到路由这些和表单这些; 准备拆成两个文章来说; 路由的配置及懒加载这些, 模板驱动的表单及响应式表单[嵌套表单响应等],回车键触发搜索等。。

    6.2K20

    Angular: 最佳实践

    如果在你的 Angular 组件中有个表单,你可能有像这样的字段或者方法: @Component({ selector: 'component-with-form', template: `.....Angular 表单,那么将这些逻辑移动到一个基础类会更友好...但是你不需要继承 AbstractBaseComponent,因为不是每个组件都有 form 表单。...模版 Templates Angular使用 html 模版(当然,还有组件、指令和管道)去渲染你应用程序的视图 ,所以编写模版是不可避免的事情,并且要保持模版的整洁和易于理解是很重要的。...比如,你想在模版为未正确填写表单控件添加 has-error 类(也就是说并非所有的校验都通过)。...如果我们有更多的表单控件,那么它会使得视图更加混乱,并且创建了很多重复的逻辑。

    2.8K40

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

    /core'; // 表单模块,比如你要在组件内用到一些表单元素或者数据绑定,不然会报错 import { FormsModule } from '@angular/forms';...可以响应组件内对应的item字段值变化, |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道的参数,后续文档我写一个如何自定义管道的文章 []="":绑定组件内的值[单向,数据流向视图],指令,原生html控件的自身属性...new运算符 使用;或.的链式表达式 自增或自减操作符 (++和--) 不支持位运算|和& 支持: 逻辑运算(|| , &&) 三目运算符( true ?...) *ngFor="let i of item; let index = index": 可以用这个来遍历数组对象,let index = index意思是创建一个局部遍历把当前遍历的索引保存到你的自定义变量...总结 这一篇没有涉及到路由这些和表单这些; 准备拆成两个文章来说; 路由的配置及懒加载这些, 模板驱动的表单及响应式表单[嵌套表单响应等],回车键触发搜索等。。

    10010

    使用Angular8和百度地图api开发《旅游清单》

    ,service为应用所需服务区,http服务,存储服务,custom.modules文件为第三方组件安置区。...为循环指令,类似的*ngIf为条件判断,事件绑定用(click),我们看看组件的ts文件对应的写法: import { Component } from '@angular/core'; @Component...组件 每个 Angular 应用都至少有一个组件,也就是根组件,它会把组件树和页面的 DOM 连接起来。...添加旅游清单 表单空间我们都用h5原生控件,我们使用angular提供的form模块,具体代码如下: import { Component, OnInit } from '@angular/core';...angular提供的FormBuilder来处理表单数据,这里需要注意,我们在提交表单的时候,需要先调用百度地图的api去生成经纬度数据,之后一起添加到清单,这样做的目的是要想画路线图,我们需要给百度地图

    6K30

    最受欢迎的10大Angular技巧

    但比如说,在 Angular Universal 或 Jest 测试环境没有浏览器,没有 Window,也没有 DOM,那该怎么办呢。.../ 扩展 Observable 或 Subject 我看到许多开发人员在他们的应用创建了出色的服务。...s=20 控件值为 ReplaySubject 在某些情况下,你需要订阅控件 valueChanges 并获取其当前值。不要重新发明轮子,只需这样做即可: ?...令我有些难过的是,一些 Angular 开发人员不喜欢创建自己的管道,可其实你几乎可以在任何数据转换的场景创建管道。 这是适用于许多情况的通用管道示例: ?...s=20 你甚至可以制作自己的 ngFor 替代品 最后一个:Angular 对于 for...of... 之类的指令有特殊的语法。这样,你可以创建自己的 ngFor

    2.1K40

    AngularDart 4.0 高级-结构指令 顶

    NgFor指令具有比本指南中显示的NgIf更多的功能,包括必需的和可选的。 至少NgFor需要一个循环变量(let hero)和一个列表(heroes)。...您可以在分配给ngFor的字符串启用这些功能,这是您在Angular的microsyntax编写的。...当你编写自己的结构指令时,可以使用这些微观语法机制。 研究NgIf和NgFor的源代码是了解更多信息的好方法。 模板输入变量 模板输入变量是一个变量,其值可以在模板的单个实例引用。...{{hero.name}} 如果没有宿主元素,通常可以将内容包装在本机HTML容器元素(,然后将该指令附加到该容器...指令属性名称应使用lowerCamelCase拼写,并以前缀开头。 不要使用ng。 该前缀属于Angular。 选择适合您或您公司的简短内容。 在这个例子,前缀是my。

    16K20

    Angular 6.x 指令快速入门

    阅读须知 本系列教程的开发环境及开发语言: Angular 6.x Angular CLI TypeScript 基础知识 Angular CLI 基本使用 安装 Angular CLI (可选) $...(图片来源于网络) 第一节 - 创建指令 在 Angular ,我们可以使用 HostBinding 装饰器,实现元素的属性绑定。...>Hello, Angular `, }) export class AppComponent { } 第三节 - 事件处理 在 Angular ,我们可以使用 HostListener...let item 和 index as i 会被转换为 let-item 和 let-i="index" ngFor 指令在列表上循环,每个循环中都会设置和重置它自己上下文对象上的属性。...Angular 把它们设置为上下文对象的 index 属性的当前值。 let-item 并没有指定其上下文属性。它的来源是隐式的。

    3.2K40

    Angular 2 数据显示

    本章节我们将为大家介绍如何将数据显示到用户界面上,可以使用以下三种方式: 通过插值表达式显示组件的属性 通过 NgFor 显示数组型属性 通过 NgIf 实现按条件显示 ---- 通过插值表达式显示组件的属性...以下代码基于 Angular 2 TypeScript 环境配置 来创建,你可以在该章节上下载源码,并修改以下提到的几个文件。...app/app.component.ts 文件: import { Component } from '@angular/core'; @Component({ selector: 'my-app'...会自动从组件中提取 title 和 mySite 属性的值,并显示在浏览器,显示信息如下: 使用 ngFor 显示数组属性 我们也可以循环输出多个站点,修改以下文件: app/app.component.ts...{{title}} 我喜欢的网站: {{mySite}} 网站列表: <li *ngFor="let site

    2.4K20
    领券