Angular Reactive Form - 填充表单模型
setValue
使用setValue,可以通过传递其属性与FormGroup后面的表单模型完全匹配的数据对象来一次分配每个表单控件值。
在分配任何表单控件值之前,setValue方法会彻底检查数据对象。
它不会接受与FormGroup结构不匹配的数据对象,或者缺少组中任何控件的值。 这样,如果您有打字错误或嵌套控件错误,它可以返回有用的错误消息。 patchValue将默认失败。
另一方面,setValue将捕获错误并清楚地报告错误。
请注意,很多数据模型(data model)可以直接作为setValue的参数,只要它们的形状类似于组件的FormGroup结构。
patchValue
使用patchValue,您可以通过提供一个键/值对的对象来为仅感兴趣的控件分配值到FormGroup中的特定控件。
使用patchValue,您可以更灵活地应对大量不同的数据和表单模型。 但是与setValue不同,patchValue无法检查缺少的控件值,并且不会引起有用的错误。
何时设置form模型的值(ngOnChanges)
//类 //@Input() connection: Connection //implements OnChanges ngOnChanges() {if (this.validateForm) {this.validateForm.patchValue({connection: {name: this.connection.name,connectionType: this.connection.connectionType},options: this.connection.options,description: this.connection.description,properties: this.connection.options.properties});this.validateForm.valueChanges.subscribe((data) => {console.log('Form changes', data);});}}
链接:http://www.jianshu.com/p/3c97d908af47
转载于:https://www.cnblogs.com/xuepei/p/7989089.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
