Что не так с определением в этом файле машинописного текста - PullRequest
0 голосов
/ 05 мая 2020

У меня есть массив объектов, который я хочу использовать при оценке некоторого ввода из формы. Однако при оценке переменной this.ptp я продолжаю получать ошибку типа. Может ли кто-нибудь указать мне правильное направление?

export class AppCadComponent implements OnInit {
  ptpForm: FormGroup;
  ptp: number = 0;
  ptp_list = [
    {"leeftijd":"30-39", ptp:0, "geslacht":"man", "score":1},
    {"leeftijd":"30-39", ptp:1, "geslacht":"vrouw", "score":2},
    {"leeftijd":"40-49", ptp:2, "geslacht":"man", "score":3},
    {"leeftijd":"40-49", ptp:3, "geslacht":"vrouw", "score":4},]

  answer: {};

  constructor(private fb: FormBuilder) { }

  ngOnInit() {
    this.ptpForm = this.fb.group ({
      ptp_age: [''],
      ptp_geslacht: [''],
    });
  }

  this.ptp = 1

  var antwoord = this.ptp_list.filter(function (item) {
    return item.leeftijd == formValue.ptp_age && item.geslacht ==formValue.ptp_geslacht && item.ptp == this.ptp
  });
  alert (answer.score);
}

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Вы можете назначить this.ptp только внутри метода / конструктора класса или во время определения в целом.

Вы можете сделать это в конструкторе или ngOnInit

  constructor(private fb: FormBuilder) { 
     this.ptp = 1;
  }

или

ngOnInit() {
    this.ptp = 1;
}
0 голосов
/ 05 мая 2020

Я не знаю, почему код для получения переменной «answoord» находится за пределами вашего компонента, но в любом случае давайте быстро очистим ваш код:

export interface PtpItem {
   leeftijd: string;
   ptp: number;
   geslacht: string;
   score: number;
}

export type PtpList = PtpItem[];

export class AppCadComponent implements OnInit {
  ptpForm: FormGroup;
  ptp: number = 0;
  ptp_list: PtpList  = [
    {"leeftijd":"30-39", ptp:0, "geslacht":"man", "score":1},
    {"leeftijd":"30-39", ptp:1, "geslacht":"vrouw", "score":2},
    {"leeftijd":"40-49", ptp:2, "geslacht":"man", "score":3},
    {"leeftijd":"40-49", ptp:3, "geslacht":"vrouw", "score":4}
  ]
  answer: {};

  constructor(private fb: FormBuilder) { }

  ngOnInit(): void {
    this.ptpForm = this.fb.group ({
      ptp_age: new FormControl(''),
      ptp_geslacht: new FormControl('')
    });

    // maybe this.ptp should be there ? To be confirmed
    this.ptp = 1;
  }

   getAntWoord(formValue: any): PtpList {
     if (!this.ptp || !formValue) {
       return []; // We don't want to filter if this.ptp is not initialized or formGroup is null
     }

     return this.ptp_list.filter((item: PtpItem) => item.leeftijd === formValue.ptp_age && item.geslacht === formValue.ptp_geslacht && item.ptp === this.ptp);
   }
}

Я не знаю, как вы фактически определите свою переменную члена ответа, но вы можете использовать функцию getAntWoord, передав formValue в param.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...