无法在rails 3.1中呈现弹出窗口

时间:2011-12-24 07:26:51

标签: ruby-on-rails ruby-on-rails-3.1 modal-dialog

如果点击了链接,我想渲染一个弹出窗口。

我有两个操作回家并在页面控制器内测试: -

在pages / home.html.erb视图中,如果我这样做

<div id="myModal" class= "reveal-modal">
  <h1> Modal Window</h1>
  <p> I am inside a modal</p>
</div>

<div>
  <%=link_to "Modal", test_url,:class=> "buttonForModal"%>
</div>

和pages.js文件

$(document).ready(function() {
     $('.buttonForModal').click(function(e) {
          e.preventDefault();
      $('#myModal').reveal();
     });
});

这很好用,给我一个很好的弹出窗口。

但是,如果我放置

<div id="myModal" class= "reveal-modal">
      <h1> Modal Window</h1>
      <p> I am inside a modal</p>
</div>

在pages / test.html.erb视图中,在page / home.html.erb

<div>
      <%=link_to "Modal", test_url,:class=> "buttonForModal"%>
</div>

我没有得到任何弹出窗口,也没有呈现任何内容,可能是什么问题?我是否需要明确提及控制器和操作名称?

我正在测试上面的代码,以便我可以将设计登录放在弹出窗口中,但同样的问题也是如此。

2 个答案:

答案 0 :(得分:1)

显示模式弹出窗口是通过javascript完成的。 javascript在浏览器中执行。您显示的javascript代码实际上希望模式存在于HTML中。

因此,您需要做的是在视图中呈现您想要的视图作为弹出窗口。

至于你的例子,在pages/show.html.erb你应该写:

<div>
  <%=link_to "Modal", test_url,:class=> "buttonForModal" %>
</div>

= render :partial => 'pages/test'

在文件pages/_test.html.erb内(请注意额外的下划线!),你可以放置模态视图。

希望这有帮助。

答案 1 :(得分:0)

“#myModal”必须与“.buttonForModal”和javascript ...在同一页面上...

现在似乎“#myModal”与“.buttonForModal”不在同一页面上,这意味着当点击按钮时,jquery无法找到“#myModal”div ...