angular之formgroup

文章目录
说明
看到百度上没有特别好的详解,这里翻译一下,顺便记录下自己的理解
内容
这里直接就搬官网的说明了:
每个子
的值聚合到一个对象中,以每个控件名称作为键 。它通过减少其子项的状态值来计算其状态 。例如,如果组中的某个控件无效,则整个组都将变得无效 。
是用于在中定义表单的四个基本构建块之一,与 、 和

实例化时,请传入子控件的集合作为第一个参数 。每个子项的键都会注册控件的名称 。
旨在用于提前已知键的用例 。如果需要动态添加和删除控件,请改用。
接受一个可选的类型参数,它是一种以内部控件类型作为值的对象类型
构造函数
new FormGroup('默认值',同步验证器,异步验证器)
属性
属性是继承 ,下面翻译一下:(这里要说明一下,这里翻译的,都是针对的,因为对于,可能是不同的)
属性说明
【angular之formgroup】value:
控件组的键值对
:| null
返回用于同步确定此控件的有效性的函数
:| null
返回用于异步确定此控件的有效性的函数
: || null
父控件
控件的验证状态
valid:
当为 VALID 时
:
当为时
:
当为时
:
当控件的为时,禁用的控件免于验证检查,并且不包含在其祖先控件的汇总值中
:

: | null
包含因验证失败生成的任何错误的对象,如果没有错误,则为 null
:
如果用户尚未更改 UI 中的值,则控件是的
dirty:
如果用户更改了 UI 中的值,则控件是 dirty 的
:
如果控件被标记为,则为真 。一旦用户在其上触发了 blur 事件,则控件就会被标记为已
:
的相反用法
:
一种多播 ,每次控件的值发生更改(在 UI 中或以编程方式)时都会发出事件 。它还会在你每次调用 () 或 () 时发出一个事件,而不将 {: false} 作为函数参数传递
:
每次重新计算控件的验证时都会发出事件的多播。
:
报告的更新策略(意味着控件更新本身的事件) 。可能的值: ‘’
root:
检索此控件的顶级祖先
这里有几个比较难理解的,进行说明一下
1 /
这里需要注意的是,当我们某个控件的时候,在提交表单时,不会进行验证 。
这里密码输入框为,在返回的value里面是没有age属性的 。并且其状态是.
2 /
这两个用法差不多,这里就讲下的用法 。这个主要是用来监视表单值变化的,是一个订阅 。具体用法如下
这里呢,在构造函数里,用进行数据监控,当name里的数值发生变化时,会订阅这个回调函数 。返回的是所有的数据 。如果监听单一的数据变化怎么写呢?如下:
this.validForm.get('name')?.valueChanges.subscribe(data=>{debugger})
3
这个总共有3个默认值’’ | ‘blur’ | ‘’;什么意思呢 。就是规定表单的值什么时候进行验证 。我们基本都是在输入的时候进行校验,所以默认是,如果想在点击提交按钮时验证的话,就改成 。具体写法如下:
方法
属性说明
()
使用组的控件列表注册控件
()
向此组添加控件
()
从此组中删除控件
()
替换现有的控件
()
检查组中是否存在具有给定名称的启用控件
()
它接受一个与组结构匹配的对象,以控件名称作为键
()
它接受以控件名称作为键的对象,并尽力将值与组中的正确控件进行匹配