Javascript 如何从js.erb文件传递部分html.erb表单,而不仅仅是一条消息?
我试图在RubyonRails示例应用程序上实现jquery。我刚开始探索js。我知道在js/jquery中我有很多东西要学。现在有一件事让我很为难 我有一个Javascript 如何从js.erb文件传递部分html.erb表单,而不仅仅是一条消息?,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我试图在RubyonRails示例应用程序上实现jquery。我刚开始探索js。我知道在js/jquery中我有很多东西要学。现在有一件事让我很为难 我有一个js.erb文件,如下所示: js.erb <% if @phone_number.verified %> $('#verify-pin').hide() $('#status-box').removeClass() $('#status-box').addClass('alert alert-success')
js.erb
文件,如下所示:
js.erb
<% if @phone_number.verified %>
$('#verify-pin').hide()
$('#status-box').removeClass()
$('#status-box').addClass('alert alert-success')
$('#status-message').text('Verified!!')
<% else %>
$('#status-box').removeClass()
$('#status-box').addClass('alert alert-warning')
$('#status-message').text("Sorry, that wasn't the right pin.")
<% end %>
$('#status-box').fadeToggle()
$(“#验证pin”).hide()
$(“#状态框”).removeClass()
$(“#状态框”).addClass(“警报成功”)
$(“#状态消息”).text('Verified!!')
$(“#状态框”).removeClass()
$(“#状态框”).addClass('alert-warning'))
$(“#状态消息”).text(“对不起,那不是正确的pin。”)
$(“#状态框”).fadeToggle()
如果你看到第5行,现在我只是在条件为真时闪现一条短信“Verified!!”。但是我希望显示一个部分erb表单。我有一个\u form.html.erb文件。如何显示此信息而不是文本消息?您可以使用此方法
显然,你可能想用这个做一些更奇特的事情,但这是基本的想法。你使用这个方法
显然,您可能想用它做一些更奇特的事情,但这是基本的想法。虽然您有.js.erb,并且可以在js中直接使用erb,但我想展示一种解决方法,它适用于那些没有.js.erb(例如使用.coffee格式)的人,并且适用于所有构建堆栈 在application.html.erb中,添加一个脚本标记并启动一个全局变量,然后您可以在需要分部时使用该变量来追加分部。像这样:
<script>
partials = {
foobarPartial: '<%= escape_javascript(render partial: 'foobar', :locals => { :local_var_1 => false, :local_var_2 => 'foo' }) %>'
};
</script>
分部={
foobarPartial:“{:local\u var\u 1=>false,:local\u var\u 2=>'foo'})%>”
};
然后,当您需要该部分时,只要通过.html(partials.foobarPartial)添加它即可。当您有.js.erb并且可以在js中直接使用erb时,我想展示一种解决方法,它将适用于没有.js.erb(例如使用.coffee格式)的用户,并且适用于所有构建堆栈 在application.html.erb中,添加一个脚本标记并启动一个全局变量,然后您可以在需要分部时使用该变量来追加分部。像这样:
<script>
partials = {
foobarPartial: '<%= escape_javascript(render partial: 'foobar', :locals => { :local_var_1 => false, :local_var_2 => 'foo' }) %>'
};
</script>
分部={
foobarPartial:“{:local\u var\u 1=>false,:local\u var\u 2=>'foo'})%>”
};
然后,每当您需要该部分时,只需通过.html(partials.foobarPartial)添加它即可以我刚才添加的部分形式进行测试
。变量@phone_number
存储的数字类似于“3843849394”。但它显示的是内存位置,比如#PhoneNumber:0x007f85adfc7170
,而不是数字。您可能需要将文本
更改为html
。将其更改为“$”(“#状态消息”)。html(“”)`现在显示#
Ok,那么@phone\u number
是一个PhoneNumber
对象,而不是一个数字。是的,但您必须为它提供一些属性,如@phone\u number.number
或其他内容。你在控制器中是怎么做的?只是为了测试我刚才添加的部分形式
。变量@phone_number
存储的数字类似于“3843849394”。但它显示的是内存位置,比如#PhoneNumber:0x007f85adfc7170
,而不是数字。您可能需要将文本
更改为html
。将其更改为“$”(“#状态消息”)。html(“”)`现在显示#
Ok,那么@phone\u number
是一个PhoneNumber
对象,而不是一个数字。是的,但您必须为它提供一些属性,如@phone\u number.number
或其他内容。你在控制器里是怎么做的?
<script>
partials = {
foobarPartial: '<%= escape_javascript(render partial: 'foobar', :locals => { :local_var_1 => false, :local_var_2 => 'foo' }) %>'
};
</script>