[Angular2 Form] Reactive form: valueChanges, update data model only when form is valid

For each formBuild, formControl, formGroup they all have 'valueChanges' prop, which is an Observable.

 

复制代码
  reactiveForm: FormGroup;
  video: Video;

  constructor(fb: FormBuilder) {
    this.reactiveForm = fb.group({
      // title <-- formControlName="title"
      title: [
        'Title', // <-- Default value
        [
          Validators.required,
          Validators.minLength(3)
        ] // <-- Validations
      ],
      duration: [
        0,
        [
          Validators.required,
          Validators.pattern('[0-9]+')
        ]
      ],
      description: [
        'Description',
        [Validators.required]
      ]
    });

    this.reactiveForm.valueChanges
      .filter( x => this.reactiveForm.valid)
      .map(value => new Video(value.title, value.duration, value.description))
      .do(formValue => console.log(formValue))
      .subscribe((video) => {
        this.video = video;
      })
复制代码
复制代码
class Video {
  constructor(
    private title: string,
    private duration: number,
    private description: string
  ){

  }
}
复制代码

 

If you want to only update form data model when form is valid, you can do:

.filter( x => this.reactiveForm.valid)

 

Reactive form is very useful when you want to do some background task without block user in the ui.

posted @   Zhentiw  阅读(756)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2015-10-26 [Angular 2] Passing data to components with @Input
2015-10-26 [Angular 2] Template property syntax
2015-10-26 [Angular 2] Adding a data model
2015-10-26 [Angular 2] Using ng-model for two-way binding
2015-10-26 [Angular 2] ngFor
点击右上角即可分享
微信分享提示