2017-11-08 1 views
0

私は自分のページを編集したいときに私がWebアプリから開く1つのフォームを持っています。
値を変更せずにフォームを送信しても、私のページは元の状態のままですが、状態が変わります。
これを避けるために、私はpristineプロパティを使用しました。しかし、もし私が古いものから新しいものへ、そして新しいものから古いものへと値を変えれば、元々は機能していない。私がangle2の値を変更して元に戻すと元の状態に保つ方法は?

Angular 2のフォームを処理するためのより良いソリューションは何でしょうか?

<button class="button large w100 primary" type="button" (click)="submitEntry(timecardForm.pristine)"> 
    <i class="fa fa-floppy-o"></i> {{ 'global.apply' | translate }} 
</button> 

答えて

0

私はこのケースに一度直面しました。

私が何をしたか

は(私は反応性のフォームを使用していましたが、あなたが欲しいものは何でも使用することができます)は、ユーザーがページに入ったとき、私はその後、この

let initialFormValue = JSON.stringify(this.myForm.value); 

ようにそれを保存し、その後、すべてのフォームデータをフェッチしていることですユーザーは彼が望むすべてを変更することができます。彼がページを離れたいとき(あなたのケースでは、フォーム提出をキャンセルする)、残っていたのは2つの文字列を比較することでした。これにより、

私はこれが役立ちます。そうでない場合は、お気軽にお問い合わせください!

+0

ありがとうございました。この実装では、ラジオボタンやチェックボックスの値から値を読み取っていません。私は初期値と実際の値について言及することができますどこでこの種の変更を実装することができますか? –

+0

私があなたに反応した形を使ったと言ったように。そうでない場合は、すべてのデータを含むオブジェクトを作成します。ユーザー情報を読み込んだ後に初期値を保存し、フォームを送信するときに呼び出されるメソッドで比較を行います – trichetriche

+0

助けてくれてありがとう。問題は解決されました。 –

関連する問題