资讯专栏INFORMATION COLUMN

Angular表单

dackel / 3033人阅读

摘要:中的表单复杂解决方案原因表单输入意味着需要在页面和服务器端同时修改这份数据修改的内容通常要在页面的其他地方反映出来用户的输入可能存在很多问题需要验证输入的内容用户界面需要清晰地显示出可能出现的预期结果和错误信息字段之间的依赖可能存在复杂的业

Angular中的表单 复杂&解决方案 原因

表单输入意味着需要在页面和服务器端同时修改这份数据

修改的内容通常要在页面的其他地方反映出来

用户的输入可能存在很多问题,需要验证输入的内容

用户界面需要清晰地显示出可能出现的预期结果和错误信息

字段之间的依赖可能存在复杂的业务逻辑

我们希望不依赖DOM选择器就能轻松测试表单

解决方案

表单控件(FormControl)封装了表单中的输入,并提供了一些可供操纵的对象

验证器(Validator)让我们能以自己喜欢的任何方式验证表单输入

观察者(Observer)让我们能够监听表单的变化,并做出相应的回应

表单对象

首先导入模块

// 导入
import { FormControl, FormGroup } from "@angular/forms";

// 注意: module模块中必须在imports中加入FormsModule
// app.module.ts
@NgModule({
    ...
    imports: [
        BrowserModule,      // 在浏览器中运行所需模块
        FormsModule,        // 表单所需模块
        ReactiveFormsModule // 响应式表单所需模块
    ]
    ...
})
FormControl

代表了单一的输入字段,例如: .其中封装了该字段的状态
例如:

// 创建一个FormControl
let nameControl = new FormControl("name");
nameControl.value;  // => "name"
nameControl.errors; // => null || StringMap of errors
nameControl.dirty;  // => true || false
nameControl.valid;  // => true || false
FormGroup

一组FormControl集合,提供一个总的接口方位group中所有formControl的值和状态;

// 定义一个FormGroup
let pserson = new FormGroup({
    firstName: new FormControl("zhou"),
    lastName: new FormControl("zhou")
});

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92586.html

相关文章

  • angular表单验证2

    摘要:表单验证使用场景在实际的开发中我们可能会有这样的情况。姓名不能为空姓名太短姓名太长姓名不能为空姓名太短姓名太长借助表单本身比之前的更简单了。结尾以上就是关于表单验证的全部内容。 前言 在之前的文章《angular表单验证》中主要介绍了一些关于angular表单验证的基础知识。在此篇中将着重以扩展angular表单验证的相关内容和实际开发中的应用为主。 表单验证使用场景1 在实际的开发...

    darkbug 评论0 收藏0
  • angular4 学习记录 -- 表单

    摘要:在表单上添加的会拦截标准的表单提交事件。并为它们提供了一些共同的行为和属性,其中有些是可观察对象。用于跟踪一个单独的表单控件的值和有效性状态。组件中的顶级表单就是一个。在表单所在的中的上添加,再在指定的验证方法中调用来显示验证失败信息。 angular4 表单 模板表单 在app.module中导入FormsModule之后,项目中的form表单都会是一个ngForm,也就是一个模板表...

    james 评论0 收藏0
  • angular6的响应式表单

    摘要:在模块里面引入要使用响应式表单,就要从包中导入,并把它添加到你的的数组中。导入验证器函数响应式表单包含了一组开箱即用的常用验证器函数。这些验证器属性可以和响应式表单提供的内置验证器组合使用。 1:在AppModule模块里面引入 ReactiveFormsModule 要使用响应式表单,就要从@angular/forms包中导入ReactiveFormsModule,并把它添加到你的N...

    alogy 评论0 收藏0
  • angular6的响应式表单

    摘要:在模块里面引入要使用响应式表单,就要从包中导入,并把它添加到你的的数组中。导入验证器函数响应式表单包含了一组开箱即用的常用验证器函数。这些验证器属性可以和响应式表单提供的内置验证器组合使用。 1:在AppModule模块里面引入 ReactiveFormsModule 要使用响应式表单,就要从@angular/forms包中导入ReactiveFormsModule,并把它添加到你的N...

    hzc 评论0 收藏0
  • angular6的响应式表单

    摘要:在模块里面引入要使用响应式表单,就要从包中导入,并把它添加到你的的数组中。导入验证器函数响应式表单包含了一组开箱即用的常用验证器函数。这些验证器属性可以和响应式表单提供的内置验证器组合使用。 1:在AppModule模块里面引入 ReactiveFormsModule 要使用响应式表单,就要从@angular/forms包中导入ReactiveFormsModule,并把它添加到你的N...

    MycLambert 评论0 收藏0
  • [译] 别再对 Angular 表单的 ControlValueAccessor 感到迷惑

    摘要:在里我们简单保存了对回调函数的引用,回调函数是由指令传入的译者注参考,只要每次组件值发生改变,就会触发这个回调函数。 原文链接:Never again be confused when implementing ControlValueAccessor in Angular forms showImg(https://segmentfault.com/img/bV7rR7?w=400...

    blastz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<