javascript - 如何在 Controller 的 Action 中显示模态窗口?

标签 javascript ruby-on-rails ruby

所以我有带有操作索引和 full_search 的 Controller PagesController。 Action 索引用于主页。在主页上,我有按钮“搜索”和 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

如何显示模态窗口(如 js 中的功能警报)?我想我必须使用 javascript..但是在哪里???

如果 search_result 为空,我不需要渲染任何 View ...我只需要停留在同一页面并显示模态窗口

最佳答案

第 1 步。

在您呈现的 View 中,有一个 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

第 4 步。

像这样编写你的 js.erb 文件,它附加模态然后显示它。

#_somefile.js.erb file

$("#my_modal_content").html("<%= escape_javascript(render 'somewhere/my_modal') %>");
$("#myModal").modal('show');

第 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>

Update

如果你想显示一个警报,它非常简单。你只是渲染 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

关于javascript - 如何在 Controller 的 Action 中显示模态窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37819575/

相关文章:

javascript - 获取 dojo comboBox 值

javascript - 如何在 CSS 规则中选择具有 Windows 格式路径的属性?

ruby-on-rails - 如何用 ActiveSupport::LoggerSilence 替换 LoggerSilence?

javascript - IE > 7 中的另一个 "z-index not working",研究后找不到答案

javascript - 将显示对话框自定义 html 添加到 Google 幻灯片脚本

javascript - 如何在 ActiveAdmin 中使用 Javascript 检索索引页面上选定 ID 的列表?

ruby-on-rails - rails 4,全局化 gem,如何设置默认语言环境

ruby - 升级 1.8.7 到 1.9.3,回形针 s3 上传不起作用

ruby-on-rails - "Mysql2"0.5.2版本安装失败

ruby-on-rails - 当我尝试添加表单时 FrontPages#home 中出现 NoMethodError