我有一些輸入字段,例如單選按鈕,文本框,下拉列表,由用戶填寫的文本字段以及單擊按鈕時的新視圖頁打開。現在在後退按鈕上,我想顯示用戶較早選擇或提供的那些舊值。如何在更改AngularJS中的視圖後保留表單的舊值
我該如何在AngularJS中做到這一點?
我有一些輸入字段,例如單選按鈕,文本框,下拉列表,由用戶填寫的文本字段以及單擊按鈕時的新視圖頁打開。現在在後退按鈕上,我想顯示用戶較早選擇或提供的那些舊值。如何在更改AngularJS中的視圖後保留表單的舊值
我該如何在AngularJS中做到這一點?
如果你有一個表單,那麼你最有可能使用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
試試這個解決方案http://stackoverflow.com/a/43700447/4116300 –