2016-05-26 9 views
1

NgFormを使用してフォームを作成し、いくつかのコントロールを追加しました。このフォームは、基本的なチャットの概念証明に使用されます。controlGroup内のAngular2 RC1更新制御値

ユーザーがメッセージを送信すると、メッセージ入力の値を空にする必要があるため、次のメッセージの入力を開始する準備が整います。しかし、コントロールの値をどのように更新するかに関するドキュメントや情報は見つかりません。

ここで私が試したいくつかのものがあります...

を私はいろいろなことを試してみたが、何も作業していません。

sendMessage(formValues) { 
    formValues.message = ''; // This works but the view doesn't update so there is evidently no binding or observers attached. 
    formValues.message.value = ''; // This throws an error that type string doesn't value defined 
    formValues.message.val(''); // This throws an error that type string doesn't contain a method val() 
    formValues['message'] = '' // This works but the view doesn't get updated so there is evidently no binding/observers here. 
    formValues.message.updateValue(''); // This also throws an error that type string doesn't have a updateValue() method. 
} 

HERESにビューテンプレート:

<form name='chat-form' (ngSubmit)='sendMessage(messageForm.value)' #messageForm='ngForm'> 
    <input class='message-body' ngControl='message' placeholder='Enter your message'/> 
    <button type='submit'>Send</button> 
</form> 

あり、このようなコントローラやモデルから値を更新するなど、フォーム上にそのような基本的な基本的なアクションを行うための方法が、これまでのところ私はしなければなりません乾いて来る。何らかの理由ControlGroupについては

+0

formValuesされますコントロールグループ? – Blacksonic

+0

はい、上記のビューテンプレートコードを追加して、ngFormディレクティブでControlGroupを作成する方法を示しました – efarley

答えて

2

、あなたはそれからControlを取得しようとするとき、あなたはそれが動作するはずControlにキャストした場合は機能updateValue()

を欠いタイプAbstractControlの値を返すように望んでいます。例えば

お使いの場合には
(<Control>yourControlGroup.controls['some_form_field']).updateValue('new value'); 

、おそらく次はformValuesがタイプControlGroupであると仮定すると動作します(それが何であるかを指定してくださいされていない場合):

(<Control>formValues.controls['message']).updateValue('') 

または多分

(<Control>formValues['message']).updateValue('') 
関連する問題