TypeError:无法读取未定义的属性“ formModel”

时间:2019-11-01 10:06:38

标签: angular angular-reactive-forms

使用反应式表单时出现此错误。这是我的代码

pipeline
{
    options
    {
        buildDiscarder(logRotator(numToKeepStr: '3'))
    }

    agent any
    environment 
    {
        PROJECT = 'tap_sample'
        ECRURL = 'http://999999999999.dkr.ecr.eu-central-1.amazonaws.com'
        ECRCRED = 'ecr:eu-central-1:tap_ecr'
    }
    stages
    {
        stage('Docker image pull')
        {
            steps
            {
                script
                {
                    sh("eval \$(aws ecr get-login --no-include-email | sed 's|https://||')")
                    docker.withRegistry(ECRURL, ECRCRED)
                    {
                        docker.image(PROJECT).pull()
                    }
                }
            }
        }
    }
}

这是Districs的数组:

组件文件

<div [formGroup]="service.formModel" fxLayout="row" fxLayout.xs="column">
    <mat-form-field fxFlex="33%" appearance="outline">
      <mat-label class="label-text">District</mat-label>
      <mat-select formControlName="District">
        <mat-option value="None">None</mat-option>
        <mat-option *ngFor="let district of districts" [value]="district.value">{{district}}</mat-option>
      </mat-select>
      <mat-icon class="icon-color" matSuffix>layers</mat-icon>
    </mat-form-field></div>

服务文件!

districts:string[] = [
  'Queensland', 'New South Wales','Australian Capital Territory'];

为什么我会收到此错误,也许是因为district为空或什么?

2 个答案:

答案 0 :(得分:3)

您使用的Service在HTML中直接为空。

如果确实是一项服务(已在构造函数中正确定义),则在formModel中定义ngOnInit,例如在组件中:

formModel: FormGroup;

ngOnInit(): void {
   this.formModel = this.service.getFormModel();
}

并在您的HTML中:

<div [formGroup]="formModel" fxLayout="row" fxLayout.xs="column">

为您服务:

getFormModel(): FormGroup {
  return this.fb.group({
    District:['']
  });
}

答案 1 :(得分:1)

您遇到语法错误,代码应如下所示-

<div [formGroup]="formModel" fxLayout="row" fxLayout.xs="column">
.....
  • FormGroup应该是formGroup
  • 与表单组的绑定应为formModel,而不是Service.formModel