2017-05-08 29 views
-1

ラジオボタン、テキストボックス、ドロップダウン、ユーザーが入力したテキストフィールド、ボタンをクリックすると新しいビューページなどの入力フィールドがあります開く。戻るボタンを押すと、以前選択した、またはユーザーが以前に与えた値が表示されます。AngularJSでビューを変更した後に古い値を保持する方法

どのようにAngularJSでこれを行うことができますか?

+0

このソリューションを試すhttp://stackoverflow.com/a/43700447/4116300 –

答えて

1

フォームをお持ちの場合は、おそらくng-modelを使用してこれらの値を保存している可能性があります。その 'オブジェクト'を使用して、ページから移動したときにng-route/ui-routeの状態パラメータとともに渡して、ページに戻ったときにそれらを復元することができます。

または、サービスを使用して格納してから取得することができます。より良い方法はおそらくng-route/ui-routeメソッドです。

編集:ALONがコメントしたように、私はもう少し今後のされている必要があり、ここでの例です:

状態1、UI-ルータ(例えばconfig.routes.js):

.state('state_one', { 
    name: 'state1', 
    params: { 
    formData: {} 
    } 
}) 

formobj.input1, formobj.input2 

あなたが残して:

フォームは命名カルコゲノフルバレン骨格のこの種の各入力/ textareaのためのそれをオフ特性を持つ、のそれでモデル-ngの、それでは、それはformobj "と呼ばれると仮定しましょうています状態2へ行くには状態1(フォームのページ)のページでは、あなたのコントローラ内でこのような何かをするだろう:

$state.go('state_two', { formData: formobj }) 

だから私たちは「formobj」渡している直接state_oneようなので、同じようである、state_twoします:

.state('state_two', { 
    name: 'state2', 
    params: { 
    formData: {} 
    } 
}) 

だから、両方のためのコントローラで、formobjにアクセスするために、それは簡単です:

$stateParams.formData 

フォームがあなたの元state_oneに戻ってきて、あなたはまだ渡している目e formobj aroundを使用して、それをモデルとして再度使用することができます(つまり、元のページ/状態に移動する前のフォームのすべての値)。すなわち:

formobj = $stateParams.formData 
関連する問題