【问题标题】:Rails render template in bootstrap modal box引导模式框中的 Rails 渲染模板
【发布时间】:2016-03-24 07:38:25
【问题描述】:

我尝试将 rails tempalte 渲染为引导模式...

JS 代码如下所示:

$(document).ready(function(){
$(".signup").click(function(){

  var text = '<%= render :template => "users/signup"%>';

  $(".modal-body").html(text);
  $("#modalBox").modal('show');
});
});

这样的模板:

<div class="row">
  <div class="col-md-12">
<h2><%= t "user.signup" %></h2>
<br>
<%= form_for User.new, :html => {:multipart => true, :class => "form-horizontal", :role => "form", :id => "signupform"}, :as => :user, :method => :post, :url => {} do |f| %>

    <div class="form-group">
      <%= f.label :email, :class => "col-sm-2 control-label", :for => "email" %>
      <div class="col-sm-10">
        <%= f.email_field :email, :class => "form-control", :placeholder => "Email", :id => "email", :placeholder => :email %>
      </div>
    </div>
    <div class="form-group">
      <%= f.label :firstname, :class => "col-sm-2 control-label" %>
      <div class="col-md-10 col-sm-10">
        <%= f.text_field :firstname, :class => "form-control", :placeholder => :firstname %>
      </div>
    </div>

结果是这样的:

有什么问题

_nav.html.erb

<div class="row bp-startsite-nav-row">
<nav class="navbar navbar-inverse navbar-fixed-top bp-nav-navbar-inverse">
<!--Titel / Icon-->
<div class="col-md-4">
  <div>
    <%= link_to "ingenium", {:controller => :startsites}, :class => "navbar-brand"%>
  </div>
</div>
<!--Titel / Icon End-->
<!--Search-->
<div class="col-md-4">
  <div id="bp-startsite-imaginary_container">
    <div class="input-group bp-startsite-stylish-input-group">
      <input type="text" class="form-control" placeholder="<%= t "navigation.search_field"%>"/>
              <span class="input-group-addon">
                <button type="submit">
                  <span class="glyphicon glyphicon-search"></span>
                </button>
              </span>
    </div>
  </div>
</div>
<!--Search End-->
<!--Buttons-->
<div class="col-md-4">
  <nav class="navbar navbar-default">
    <div class="container-fluid">
      <!-- Brand and toggle get grouped for better mobile display -->
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
      </div>

      <!-- Collect the nav links, forms, and other content for toggling -->
      <div class="collapse navbar-collapse" id="bp-nav-bs-example-navbar-collapse-1">
        <ul class="nav navbar-nav">
          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Sprache <span class="caret"></span></a>
            <ul class="dropdown-menu">
              <%= render :partial =>"shared/languageChooser" %>
            </ul>
          </li>
          <button type="button" class="btn btn-default navbar-btn bp-nav-navbar-btn bp-nav-btn-default"><%= t "start.sign_in" %></button>
          <button type="button" class="btn btn-primary navbar-btn bp-nav-navbar-btn signup"><%= t "start.register" %></button>
          </ul>
        </div>
      </div>
    </nav>
</div>
<!--Buttons End-->
</nav>
</div>


<script>

$(document).ready(function(){
$(".signup").click(function(){

  var text = '<%= render :template => "users/signup"%>';

  $(".modal-body").html(text);
  $("#modalBox").modal('show');
});
 });

 </script>

【问题讨论】:

  • 你的JS代码在erb文件里面吗?
  • 我有一个 index.html.erb 在那里我加载了一个 _nav.html.erb 部分并在其中粘贴了我的 js 代码
  • 添加您的部分文件
  • 添加一个_nav.html.erb
  • 试试这个:var text = '&lt;%= escape_javascript(render :template =&gt; "users/signup").html_safe%&gt;'

标签: jquery ruby-on-rails twitter-bootstrap ruby-on-rails-4


【解决方案1】:

你必须使用escape_javascript && html_safe

试试这样:

var text = '<%= escape_javascript(render :template => "users/signup").html_safe %>';

【讨论】:

  • 现在它显示正确,但模式不打开在控制台中出现 js 错误:Uncaught SyntaxError: missing ) after argument list
  • 感谢您的帮助!问题是一个错误的字母;)
猜你喜欢
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
  • 2016-12-07
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多