当尝试在 js 部分中渲染 html 部分时,我遇到了一个相当奇怪的错误
在我的索引页中,我有:
<% content_for :head do %>
<script type="text/javascript">
<%= render :partial => "index", :formats => [:js] %>
</script>
<% end %>
这是 _index.js.erb 文件
$(function(){
<% if @badge %>
$('#badge').html("<%= j render :partial => "badge1", :badge=> @badge, :user => current_user %>");
$('#badge').show().delay(3000).fadeOut(2000);
<% end %>
$('#Container_2').mixItUp();
$('#Container_2').mixItUp('sort', 'myorder:desc');
});
当我进入索引页面时,它给出错误“缺少部分索引”。日志显示index.js.erb已被渲染。 但是,如果我删除 _index.js.erb 文件中的第 3 行,它就可以正常工作。
所以,即使我以某种方式弄乱了徽章部分(我怀疑我做了),为什么它说当这条线存在时它找不到整个部分?
最佳答案
您的问题在于无法正确渲染 badged1 部分。请尝试以下操作:
确保 @badge 和 current_user 具有值。
'badge1',本地人:{徽章:@badge,用户:current_user})%>关于javascript - 在 js 部分内渲染 html 部分会导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25247297/