Quelqu'un peut-il expliquer pourquoi les valeurs numériques s'affichent sous forme de chaîne vide dans mon formGroup,
private formatFormValues(depositDates) {
return depositDates.map((depositDate) => {
console.log('deposit dates', depositDates);
console.log('deposit dates - amount', depositDate.controls.effectiveDates.value);
return {
effectiveDates: depositDate.controls.effectiveDates.value,
depositDate: depositDate.controls.depositDate.value,
};
});
}
J'ai cette instance de depositDates formGroup qui enregistre et ressemble à ceci :
J'essaie ensuite d'accéder aux valeurs dans cette instance, et pour une raison quelconque au montant s'affiche toujours comme une chaîne vide bien qu'elle soit affichée comme une valeur numérique active et définie?
Suis-je en partie ce qui manque quelque chose / accéder à quelque chose de manière incorrecte pour que cela se produise?
3 Réponses :
Parfois, Angular n'est pas invité à mettre à jour la valeur d'un groupe de formulaires. Vous pouvez appeler manuellement updateValueAndValidity sur votre groupe de formulaires ou le contrôle de formulaire requis. P >
Il s'avère que j'avais un paramètre d'option dans mon appel setValue () arrêtant l'émission de tout événement, je ne comprends toujours pas pourquoi il accèderait à la valeur du montant alors qu'il était là avant mes modifications, la réponse va à toute personne qui peut expliquer ..
Peut-être que la méthode renvoie des valeurs avant la fin de la fonction de carte? Vous pouvez essayer le code ci-dessous.
this.formatFormValues(depositDates).then(resp => {
// set form values
});
Lorsque vous y accédez, vous pouvez utiliser:
async formatFormValues(depositDates) {
return new Promise(async (resolve, reject) => {
resolve(depositDates.map(async (depositDate) => {
console.log('deposit dates', depositDates);
console.log('deposit dates - amount', depositDate.controls.effectiveDates.value);
return {
effectiveDates: depositDate.controls.effectiveDates.value,
depositDate: depositDate.controls.depositDate.value,
};
}));
});
}
Montrez aussi votre html
Ceci est exécuté lors du chargement de la page fyi
Le formGroup attend-il une chaîne ou un nombre pour le montant? On dirait qu'il cherche une chaîne. Cela pourrait également être un problème avec le retour sans attendre la fin de la carte. Je mettrai un extrait de code dans une réponse ci-dessous.