[英]How to pass a partial html.erb form from js.erb file instead of just a message?
我正在嘗試在Rails應用程序的示例紅寶石上實現jquery。 我剛剛開始探索js。 我知道我在js / jquery中有很多東西要學習。 現在有一些我堅持的東西。
我有一個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()
如果您看到第五行,那么現在我只是在閃爍一條文本消息“ Verified !!”。 當條件為真時。 但是我想顯示部分erb形式。 我有一個_form.html.erb文件。 如何顯示此內容而不是短信?
您使用escape_javascript
方法。
$('#status-message').html("<%= escape_javascript(render 'form) %>");
它也被別名為j
$('#status-message').html("<%= j(render 'form) %>");
顯然,您可能想對此做更多花哨的事情,但這是基本思想。
雖然您確實有.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>
然后,每當需要該部分時,只需通過.html(partials.foobarPartial)添加它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.