如何创建嵌套的表单组,基于模型的反应表单

How to create nested formgroup, model based reactive form

我有一个User形式的反应形式,我使用了@rxweb包中的RxFormBuilder,我有一个用户模型class,其中包含UserInfo 对象,如何将它用作嵌套 formgroup

model.ts:

import {prop,propArray } from "@rxweb/reactive-form-validators"
export class UserInfo{
   @prop()
   cityId: number 

   @prop()
   countryId: number;
}

export class User{
 @prop()
 userId: string;

 @prop()
 password: string;

@prop()
securityQuestion: string;

 @prop()
 userInfo : UserInfo;

}

component.ts:

export class UserInfoComponent implements OnInit {

    userInfoFormGroup: FormGroup

    constructor(
        private formBuilder: RxFormBuilder
    ) { }

    ngOnInit() {
        this.userInfoFormGroup = this.formBuilder.formGroup(User);
    }
}

我想在用户模型中使用 UserInfo 对象作为嵌套 formgroup。如何创建嵌套 formgroup?

这是一个 stackblitz link: https://stackblitz.com/edit/rxweb-nested-formgroup-using-model

根据 @rxweb/reactive-form-validatorsan example,你应该用 @propObject 装饰器 userInfo 属性 装饰你:

import { propObject} from "@rxweb/reactive-form-validators";

export class User {
  ...

  @propObject(UserInfo)
  userInfo: UserInfo;
}

并初始化 FormGroup 如:

ngOnInit() {
    let user = new User();
    user.userInfo = new UserInfo();
    this.userInfoFormGroup = this.formBuilder.formGroup(user);
}

Forked Stackblitz