我有一個形式remote: true
。提交表單時,我想用js
作出迴應,如果記錄無效,則會顯示錯誤消息,但保存時,我想重新加載頁面,因此我正在使用location.reload()
。但是,如果記錄已保存,我將爲flash[:notice]
分配一個值,但在執行location.reload()
後我將丟失該值。有什麼辦法可以在location.reload()
之後獲得我的Flash消息。如果不是,我的替代品是什麼?謝謝!location.reload()後丟失閃光值()
0
A
回答
0
因爲您正在重新加載頁面而丟失它。
爲什麼你需要重新加載?如果要顯示新記錄,則可以只添加一個create.js.erb文件來附加或預先記錄新記錄。
1
我認爲你不能。其中一個替代方案:
除了location.reload()之外,您可以使用一些其他URL參數重定向。
例如:
在控制器:
# it's the same like location.reload() but adding 'status=success' extra parameter to url
...
render js: "window.location = updateQueryStringParameter('#{request.referer}', 'status', 'success');"
...
JQuery的:
function updateQueryStringParameter(uri, key, value) {
var re = new RegExp("([?|&])" + key + "=.*?(&|$)", "i");
separator = uri.indexOf('?') !== -1 ? "&" : "?";
if (uri.match(re)) {
return uri.replace(re, '$1' + key + "=" + value + '$2');
}
else {
return uri + separator + key + "=" + value;
}
}
然後可以添加濾光器根據狀態參數來設置閃光消息:
class ApplicationController < ActionController::Base
...
before_filter :check_status
...
def check_status
if params[:status]
if params[:status] == 'sucess'
flash[:notice] = "Success !!! Congratulations !!!"
else
...
end
redirect_to url_for(params.except(:status)) # take away status parameter from url (if you wish)
end
end
也許更好的方法是在中間件或路由約束中過濾狀態參數而不是控制器。
相關問題
- 1. 的Joomla JCE閃光燈按鈕丟失
- 2. $ _POST和$ _REQUEST數據在location.reload上丟失()
- 3. JavaScript location.reload()丟失發佈數據
- 4. Rails,在redirect_to後丟失閃存
- 5. statsd後丟失值的20%
- 6. 閃光燈[:通知]閃光燈[:錯誤] +刷新按鈕=消失
- 7. Android Studio:光標丟失
- 8. Visual Studio:丟失的光盤
- 9. 「location.reload()」丟失POST/SESSION數據? (F5/Ctrl + R保留數據?)
- 10. Laravel輸入::閃光燈()如何檢索閃光燈值
- 11. 閃光/閃爍UIView
- 12. 在Internet Explorer上的閃存覆蓋厚盒,然後閃光消失
- 13. Hiddenfield丟失值
- 14. Ajax.ActionLink值丟失
- 15. NSSrring丟失值
- 16. 閃光燈在ie6後幾秒鐘內消失
- 17. 閃光[:聲明] .should_not be_nil失敗rspec的
- 18. 回發後文本框丟失值
- 19. std ::映射值在返回後丟失
- 20. 切換標籤後丟失setTimeout值
- 21. Shell - 循環後變量丟失值
- 22. 系統重置後環境值丟失
- 23. 閃光或閃光效果的按鈕
- 24. Symfony的1.4閃存消息丟失
- 25. 「解僱」UIWindow後,搜索列表上的光標丟失
- 26. 光油不斷丟失緩存,cookies?
- 27. ListView中的Edittext丟失光標
- 28. 文本框有時會丟失光標
- 29. 捆綁丟失值
- 30. 指針值丟失