Как добавить события в класс, который хранится в массиве - PullRequest
0 голосов
/ 21 апреля 2020

Я сохранил класс различных входных данных в массиве с ключом как class , а имена некоторых входных данных, выберите поля, которые связывают имя класса с ключом fields, Мне нужно добавить события в эти классы. Мне нужно сделать поле по мере необходимости, когда значение, соответствующее имени класса, имеет значение. Пожалуйста, дайте несколько предложений. Входные данные динамически создаются из базы данных.

Здесь я прилагаю образец массива:

 [
        {
            key: 'payment',
            relatedFields: ['paymentType'],
            class: 'relatedField-payment',
            type: 'input'
        },
        {
            key: 'text',
            relatedFields: ['paymentType'],
            class: 'relatedField-text',
            type: 'input'
        },
        {
            key: 'paymentType',
            relatedFields: ['payment','text'],
            type: 'input'
        }
    ]

Код, который я пробовал (внутри конструктора Angular):

  self.relatedFieldsArray.forEach(element =>{
  $(element.className).on('change', ()=>{

    let paymentValue = $(this).val();

      element.relatedFields.forEach(field => {
        if( paymentValue != ''){
          self.form.controls[field].setValidators([Validators.required]);
          self.form.controls[field].updateValueAndValidity();
        }else{
          self.form.controls[field].clearValidators();
          self.form.controls[field].updateValueAndValidity();
        }
      });

  });
})
...