首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不适用于特定formGroup的Formcontrol绑定

不适用于特定formGroup的Formcontrol绑定
EN

Stack Overflow用户
提问于 2021-11-23 21:45:49
回答 1查看 44关注 0票数 0

我有反应性表单,并在备用formGroup下看到窗体控件的空值。正如您在下面的标记中所看到的,我添加了属性formGroupName=“备用”,但它似乎不起作用。我也尝试过formGroupName=的“备用”。因此,外部备用的formControls是正确的,是明确的,而不是交替下的。bindings.Could有一些问题,你让我知道问题出在哪里?

代码语言:javascript
复制
ngOnInit(): void {
    this.languageService.alternateLanguageSelected$.subscribe(alternateLanguageSelected => {
      this.alternateLanguageSelected = alternateLanguageSelected;
    });

    this.formGroup = this.formBuilder.group({
      yesNoMultilingualPrincipalAddress: [{ value: false, disabled: this.readonly }],
      yesNoMultilingualMailingAddress: [{ value: false, disabled: this.readonly }],
      yesNoOtherBusinessAddresses: [{ value: false, disabled: this.readonly }],
      hasDifferentPrincipalAddress: [{ value: null, disabled: this.readonly }, Validators.required],
      differentPrincipalAddress: [
        { value: null, disabled: this.readonly },
        [conditionalValidator(() => this.form.hasDifferentPrincipalAddress.value, requiredAddress)]
      ],
      

      alternate: this.formBuilder.group({
        hasDifferentPrincipalAddress: [{ value: null, disabled: this.readonly }],
        differentPrincipalAddress: [{ value: null, disabled: this.readonly }],      
      }),
    });
    }
    
    
    
<form [formGroup]="formGroup" novalidate>       
    <div class="flex-group">
        <div class="flex-2">
    
          <fieldset class="boxed">
            <legend translate for="hasDifferentPrincipalAddress">details.main-address</legend>
            <app-yes-no [ngClass]="{ submitted: submitted }" name="hasDifferentPrincipalAddress"
              formControlName="hasDifferentPrincipalAddress"></app-yes-no>
            <aa-alert alertClass="error" alertText="{{ 'common.required' | translate }}"
              *ngIf="(form.hasDifferentPrincipalAddress.touched || submitted) && form.hasDifferentPrincipalAddress.errors?.required">
            </aa-alert>
          </fieldset>
    
          <div class="field boxed" *ngIf="this.alternateLanguageSelected && form.hasDifferentPrincipalAddress.value">
            <app-yes-no-multilingual name="yesNoMultilingualPrincipalAddress"
              formControlName="yesNoMultilingualPrincipalAddress" id="yesNoMultilingualPrincipalAddress"
              [description]="'common.yesno-multilingual-text'">
            </app-yes-no-multilingual>
          </div>
    
          <div class="field dependant" *ngIf="form.hasDifferentPrincipalAddress.value">
            <div class="field">
              <app-address formControlName="differentPrincipalAddress" [submitted]="submitted" [englishOnly]="true"></app-address>
            </div>
          </div>
    
         </div>
        </div>
    
        <div class="flex-2">
          <fieldset class="boxed" *ngIf="form.yesNoMultilingualPrincipalAddress.value">
            <legend translate for="hasDifferentPrincipalAddress">details.main-address</legend>
            <app-yes-no [ngClass]="{ submitted: submitted }" name="hasDifferentPrincipalAddress" [formGroupName]="alternate"
              formControlName="hasDifferentPrincipalAddress"></app-yes-no>
          </fieldset>
    
          <div class="field dependant" *ngIf="form.yesNoMultilingualPrincipalAddress.value">
            <div class="field">
              <app-address formControlName="differentPrincipalAddress" [submitted]="submitted" [formGroupName]="alternate"
                [showAlternateLanguageFields]="form.yesNoMultilingualPrincipalAddress.value"></app-address>
            </div>
          </div>
    
        
        </div>
      </div>
</form>
EN

回答 1

Stack Overflow用户

发布于 2021-11-24 04:03:48

您必须将formGroupName="alternate"设置为<div class="flex-2">

代码语言:javascript
复制
<div class="flex-2" formGroupName="alternate" >
  <fieldset class="boxed" *ngIf="form.yesNoMultilingualPrincipalAddress.value">
    <legend translate for="hasDifferentPrincipalAddress">details.main-address</legend>
    <app-yes-no [ngClass]="{ submitted: submitted }" name="hasDifferentPrincipalAddress"
      formControlName="hasDifferentPrincipalAddress"></app-yes-no>
  </fieldset>

  <div class="field dependant" *ngIf="form.yesNoMultilingualPrincipalAddress.value">
    <div class="field">
      <app-address formControlName="differentPrincipalAddress" [submitted]="submitted"
        [showAlternateLanguageFields]="form.yesNoMultilingualPrincipalAddress.value"></app-address>
    </div>
  </div>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70088217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档