Я сохранил класс различных входных данных в массиве с ключом как 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();
}
});
});
})