Vit*_*kyi 2 javascript ruby ruby-on-rails
所以我得到了带有操作索引和 full_search 的控制器 PagesController。动作索引用于主页。在主页上,我有“搜索”按钮和 text_field。如果用户在 text_field 中键入 sometiong 并单击“搜索”按钮,他/她将执行 full_search。在此操作中,我尝试通过用户的查询查找某些内容。如果我没有找到任何东西,我应该只显示一个“无结果”的模式窗口,否则重定向到另一个页面
def full_search
...do search...
if search_result.empty?
show modal window with text 'no results'
else
redirect to another page
end
end
Run Code Online (Sandbox Code Playgroud)
如何显示模态窗口(如 js 中的函数警报)?我想我必须使用 javascript..但是在哪里???
如果 search_result 为空,我不需要渲染任何视图......我只需要停留在同一页面并显示模态窗口
第1步。
在您呈现的视图中,有一个 ID 为“my_modal_content”的 div,其中将插入模态的内容并显示模态。
第2步。
渲染一个 js.erb 文件,它将模态附加到我们的页面
#your rails controller method
def my_method
if something == true
respond_to do |format|
format.js { render :partial => 'somewhere/somefile.js.erb' }
#I'm assuming its js request
end
else
redirect to another page
end
end
Run Code Online (Sandbox Code Playgroud)
第四步。
像这样写你的 js.erb 文件,它附加 modal 然后显示它。
#_somefile.js.erb file
$("#my_modal_content").html("<%= escape_javascript(render 'somewhere/my_modal') %>");
$("#myModal").modal('show');
Run Code Online (Sandbox Code Playgroud)
第 3 步。
模态部分文件_my_modal.html.erb放置在views/somewhere/您准备好的模态内容中。
<div class="modal fade" tabindex="-1" id="myModal" role="dialog">
<div class="modal-dialog">
...<!-- all your content insdie -->
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
更新
如果你想显示警报,它非常简单。你只是渲染js
if search_result.empty?
message = "No result found. Try something else!"
respond_to do |format|
format.js { render js: "alert(#{message});" }
end
else
redirect to another page
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6079 次 |
| 最近记录: |