>

구성 요소간에 분할 된 양식이 있으므로 .addControl 를 사용해야합니다.  모든 작업에 양식을 제공합니다.

현재 양식 구조입니다 :

name: ['', [Validators.required, Validators.maxLength(255)]],
address: this.ofb.group({
    addressLineOne: ['', Validators.required],
    addressLineTwo: ['', Validators.required],
    addressLineThree: [''],
    addressPostcode: ['', [Validators.required, OrgValidators.postcodeValidator]]
})

필드를 .addControl 로 변환했습니다  구문은 다음과 같습니다.

this.createOrganisationForm.addControl('name', new FormControl(null, [Validators.required, Validators.maxLength(255)]));
this.createOrganisationForm.addControl('addressLineOne', new FormControl(null, [Validators.required]));
this.createOrganisationForm.addControl('addressLineTwo', new FormControl(null, [Validators.required]));
this.createOrganisationForm.addControl('addressLineThree', new FormControl(null, [Validators.required]));
this.createOrganisationForm.addControl('addressPostcode', new FormControl(null, [Validators.required, OrgValidators.postcodeValidator]));

그러나 그들은 '주소'라는 그룹을 잃어버린 것 같습니다. 객체에 주소를 다음과 같이 추가하려고했습니다.

let addressGroup = {
  addressLineOne: ['', Validators.required],
  addressLineTwo: ['', Validators.required],
  addressLineThree: [''],
  addressPostcode: ['', [Validators.required, OrgValidators.postcodeValidator]]
 }

그리고 다음과 같이 추가하십시오 :

this.createOrganisationForm.addControl('address', addressGroup);

그러나 오류가 발생합니다 :

와이즈 비즈

is not assignable to parameter of type 'AbstractControl'.

를 사용하여 컨트롤 그룹을 부모 컨트롤에 추가하는 방법  방법.

감사합니다

.addControl
  • 답변 # 1

    주소 그룹 개체가 FormGroup 클래스의 인스턴스가 아니기 때문입니다.

    const addressGroup =  new FormGroup({
      addressLineOne: ['', Validators.required],
      ....
    })
    
    

  • 답변 # 2

    FormGroup 유형으로 주소 그룹 초기화  아래에 언급 한대로 :

    와이즈 비즈

    let addressGroup = {

    let addressGroup: FormGroup = new FormGroup({

관련 자료

  • 이전 Firebase 및 Swift를 사용하여 특정 사용자와 관련된 게시물 얻기
  • 다음 Primefaces가 html 태그 JSF의 ID를 자동으로 생성하지 않습니까?