2017-05-08 40 views
-1

我有一些輸入字段,例如單選按鈕,文本框,下拉列表,由用戶填寫的文本字段以及單擊按鈕時的新視圖頁打開。現在在後退按鈕上,我想顯示用戶較早選擇或提供的那些舊值。如何在更改AngularJS中的視圖後保留表單的舊值

我該如何在AngularJS中做到這一點?

+0

試試這個解決方案http://stackoverflow.com/a/43700447/4116300 –

回答

1

如果你有一個表單,那麼你最有可能使用ng-model存儲這些值。當你離開頁面時,你可以使用這個'object',並在你的ng-route/ui-route中將它與狀態參數一起傳遞,並在你回到頁面時恢復它們。

或者,您可以使用服務來存儲它然後檢索它。雖然更好的方法可能是ng-route/ui-route方法。

編輯:阿龍曾這樣評價,我應該已經有點更加積極,這裏有一個例子:

狀態1,UI路由器(config.routes.js爲例):

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

您的形式將有NG-模型中,所以我們假設它被稱爲「formobj」,以關閉它爲每個輸入/ textarea的性質與這種命名PPC結構:

formobj.input1, formobj.input2 

當你離開狀態1(你的表單頁面)進入狀態2頁,你會做這樣的事情在你的控制器:

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

所以我們傳遞「formobj」直接state_two,這就像state_one是像這樣:

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

所以在控制器兩個,訪問formobj這是直截了當:

$stateParams.formData 

當你回到你原來的state_one在形式,你還是個合格然後你可以再次使用它作爲模型(也就是你在移動到另一個頁面/狀態之前最初從表單獲得的所有值)。即:

formobj = $stateParams.formData 
相關問題