0

J'ai des entrées de forme de texte, et je veux qu'elles agissent comme des formes et affichent également les valeurs définies lorsque le formulaire est soumis. le problème est quand je soumets le formulaire, et obtient la valeur pour le début (form.controls.start.value) j'obtiens une erreur parce que cette valeur est observable quand je regarde le formulaire dans la console. l'erreur indique cannot get value of undefined.obtenir la valeur de la forme du tube asynchrone (observable dans l'attribut valeur de l'entrée)

J'ai l'start$ observable qui peuplait mon entrée avec la valeur actuelle:

<div class="col"> 
    Pool Start: 
</div> 
<div class="col"> 
    <input 
      type="text" 
      class="form-control" 
      formControlName="start" 
      [value]="start$ | async" 
    > 
</div> 

fait partie d'une forme:

this.dhcpForm = this.formBuilder.group({ 
      'start': [this.start$], 
      'end': [this.end$], 
      'lease': [this.lease$] 
}); 

et ceci est ma fonction de soumission assigner les valeurs de formulaire :

console.log(dhcpForm); 
const start = dhcpForm.controls.start.value; 
const end = dhcpForm.controls.end.value; 
const lease = dhcpForm.controls.lease.value; 

nouveau pour réitérer ma question, comment puis-je ren der les valeurs dans le champ de saisie après que le formulaire est soumis lorsque la valeur est 'observable'?

ici est la sortie de forme: form values are observables

here is an example of my code* (* S'il vous plaît modifier ce code dans une fenêtre séparée ou d'une fourchette si cette version reste la même pour tous)

+0

Voir [ce] (https://stackoverflow.com/questions/43663616/subscribing-to-an-observable-in-an-angular-2-html-element) –

+0

@SurenderKherwa Donc, je suis déjà en train d'utiliser le tuyau asynchrone. comment puis-je ajouter l'opérateur safe à '[value] =" start $ | async "' car '[value] =" (démarrer $ | async)? " ne fonctionne pas. aussi je ne pense pas que cela répond à mon problème, les valeurs sont déjà là, le problème est que la valeur est un observable – FussinHussin

+0

Pouvez-vous ajouter un lien vers le code dans un plunkr ou quelque chose? Je ne suis pas sûr de comprendre votre situation. Généralement vous utiliserez quelque chose comme object? .start pour sauvegarder dans un template – Eeks33

Répondre

0

Je regardais l'échantillon en direct, je peut le faire fonctionner en supprimant async pipe et en utilisant patchValue pour définir les formes. Voir la version fourchue:

https://stackblitz.com/edit/angular-ipe8hd

cela est-il l'effet que vous cherchez? Je ne pense pas que vous devez faire [valeur] ou utiliser un tuyau async ici du tout ... La fourche est encore moins de code. Faites-moi savoir si c'est la fonctionnalité que vous recherchez et si vous souhaitez que celle-ci apparaisse d'une certaine manière.

+0

ce lien ne semble pas être votre version ... il retourne toujours '[object object]' quand je clique sur submit. Aussi, pourriez-vous poster une version modifiable lorsque vous l'obtenez fonctionne – FussinHussin

+1

@FussinHussin Essayez ce lien - https://stackblitz.com/edit/angular-ipe8hd – Eeks33

+0

Hey @ Eeks33 qui fonctionne, si vous souhaitez afficher cela comme répondre, j'ai une autre méthode de travail avec des sujets de comportement – FussinHussin