Angular.js专场Web前端之路我爱编程

Angular Form

2017-12-08  本文已影响52人  _LG_

("▔□▔),又遇到了错误,似曾相识。分析错误原因,上网搜索,解决错误。不知道做了多少次这个动作,在Angular Form这个知识点上。so,为了不重复干活,就用了两天的时间整理了我对Angular Form表单的理解。

先简单的来说下Angular Form表单,Form,是商业应用的支柱,一般,我们用它来登录、预定机票、安排会议等等一些数据录入任务。在Angular中构建表单的技术有两种:响应式表单模板驱动表单。它们都属于@angular/forms库,并且共享一组公共的表单控件类。但是在设计哲学、编程风格和具体技术有显著区别,所以他们有自己的模块:ReactiveFormsModuleFormsModule

其次,在看完了Angular Form官方文档后,我整理出Angular Form的关键词:

  • FormBuilder
  • FormGroup
  • FormControl class
  • FormArray
  • AbstractControl
  • FormControlName
  • FormControl Directive

接下来就一一详细介绍它们。

FormBuilder

FormBuilder,根据程序员的配置,创建一个AbstractControl表单。在组件中使用FormBuilder时,必须在模块中倒入ReactiveFormsModule

FormGroup、FormControl class、FormArray

FormGroupFormControl class、FormArray他们是Angular定义窗体的三个基本构建块。

const form = new FormGroup({
  password: new FormControl('', Validators.minLength(2)),
  passwordConfirm: new FormControl('', Validators.minLength(2)),
}, passwordMatchValidator);

function passwordMatchValidator(g: FormGroup) {
   return g.get('password').value === g.get('passwordConfirm').value
      ? null : {'mismatch': true};
}

new FormGroup中参数:第一个参数是子控件(FormControl)的集合,每个子控件的key是其注册的名称;第二个参数是组级间的验证程序,例如,密码控件和验证密码控件验证相等时的程序就放在第二个参数上。

const name = new FormControl('', Validators.required);

new FormControl中参数:第一个参数是初始化的值;第二个参数是验证的方法,当让也可以写多个验证方法,暂不讨论。

AbstractControl

AbstractControlFormGroupFormControlFormArray的基类,它定义了所有子类之间共享的属性,如valuedirtyvalid,它不应该直接被实例化。

FormControlName Directive、FormControl Directive

以上就是我对Angular Form知识点的一些笔记,请大家多多指教。。。

上一篇 下一篇

猜你喜欢

热点阅读