0

私はテキストフォームの入力を持ち、フォームとして機能し、フォームの送信時に設定された値を表示します。問題は私がフォームを提出し、開始(form.controls.start.value)の値を得るときです。コンソールのフォームを見ると、その値が観測可能なのでエラーが出ます。エラーはcannot get value of undefinedと表示されます。非同期パイプフォーム値の値を取得する(入力の値属性で観測可能)

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

それはフォームの一部です:

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

と、これはフォームの値を割り当てる私の提出の関数である

は、私は現在の値で、私の入力を移入された観測可能 start$持っています:

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

私の質問をもう一度繰り返すには、どうすればいいですか?値が 'observable'のときにフォームが送信された後の入力フィールド内の値をder derする?ここ

は、フォームの出力です: form values are observables

here is an example of my code*(*別のウィンドウにこのコードを編集したり、フォークので、このバージョンでは、すべてのために同じまましてください)

+0

[これ](https://stackoverflow.com/questions/43663616/subscribing-to-an-angular-2-html-element) –

+0

@SurenderKherwaを参照してください。非同期パイプ。 '[value] ="(start $ | async)のために安全な演算子を '[value] = 'start $ | async" 'に追加するにはどうすればよいですか?動作しません。私はこの問題に対処しているとは思っていません。値はすでにあります。問題は値が観測可能です。 – FussinHussin

+0

plunkrなどのコードへのリンクを追加できますか?私はあなたの状況を理解しているか分からない。通常、オブジェクト?.startのようなものを使用してテンプレート内を保護します – Eeks33

答えて

0

私は、生きたサンプルを見て非同期パイプを削除し、patchValueを使ってフォームを設定することで、動作させることができます。フォークバージョンを参照してください:

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

を、これはあなたが探している効果を実現していますか?私はあなたが[値]をやる必要はないと思うし、ここでは非同期パイプを使っていると思う。これが機能しているかどうか、それを特定の方法で見たい場合はお知らせください。

+0

そのリンクはあなたのバージョンではないようです...私はsubmitを押したときに '[object object]'を返しています。また、編集可能なバージョンを投稿してもらえますか? – FussinHussin

+1

@FussinHussinこのリンクを試す - https://stackblitz.com/edit/angular-ipe8hd – Eeks33

+0

Hey @ Eeks33は動作します。答えは、私は別の方法は、動作の被験者で動作している – FussinHussin

関連する問題