1
votes

La valeur numérique s'affiche sous forme de chaîne vide lors de l'accès aux valeurs formGroup?

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 : entrez la description de l'image ici

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?

 entrez la description de l'image ici

Suis-je en partie ce qui manque quelque chose / accéder à quelque chose de manière incorrecte pour que cela se produise?


3 commentaires

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.


3 Réponses :


1
votes

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.


0 commentaires

0
votes

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 ..


0 commentaires

2
votes

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,
                };
            }));
        });

    }


0 commentaires