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

Avn*_*tel 2 angular angular-reactive-forms

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

模型.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;

}
Run Code Online (Sandbox Code Playgroud)

组件.ts:

export class UserInfoComponent implements OnInit {

    userInfoFormGroup: FormGroup

    constructor(
        private formBuilder: RxFormBuilder
    ) { }

    ngOnInit() {
        this.userInfoFormGroup = this.formBuilder.formGroup(User);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

yur*_*zui 6

根据您的示例@rxweb/reactive-form-validators,应该userInfo使用装饰器装饰您的财产@propObject

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

export class User {
  ...

  @propObject(UserInfo)
  userInfo: UserInfo;
}
Run Code Online (Sandbox Code Playgroud)

并且还初始化FormGroup如下:

ngOnInit() {
    let user = new User();
    user.userInfo = new UserInfo();
    this.userInfoFormGroup = this.formBuilder.formGroup(user);
}
Run Code Online (Sandbox Code Playgroud)

叉式堆栈闪电战