我在用Rails应用程序渲染Bootstrap Popover中出现部分问题。
部分内容始终以纯文本呈现(显示所有HTML标签等)。
这是来自index.html.erb的代码
<span class="has-popover"
style="cursor:pointer;"
data-toggle="popover"
data-trigger="hover"
data-container="body"
data-placement="right"
title="Lorem Ipsum"
data-content= "<%= render :partial => 'envs/e1' %>" >
<i class="fa fa-question-circle " aria-hidden="true"></i>
</span>
在
app.js
中,我有这个片段$(".has-popover").popover({
html : true
});
这是
_e1.html.erb
文件夹中的envs
部分<h2>Mauris euismod sollicitudin?</h2>
<p>Morbi sit amet tellus pellentesque, maximus eros a, aliquam nunc. Vivamus velit velit, vestibulum at eros eu, iaculis hendrerit tortor. Morbi ullamcorper purus at ornare ullamcorper. </p>
<br>
<p>Morbi sit amet tellus pellentesque, maximus eros a, aliquam nunc. Vivamus velit velit, vestibulum at eros eu, iaculis hendrerit tortor. Morbi ullamcorper purus at ornare ullamcorper. </p>
我已经用
"<%= render :partial => 'envs/e1' %>"
和raw()
将html_safe
这一行包装了起来,没有任何运气。*新增示例*
以下是我在片段中如何使用
html_safe
和raw
的示例data-content= raw("<%= render :partial => 'envs/e1' %>")
-文本以“正确”的方式出现,但不在弹出窗口之外。data-content= "<%= raw(render :partial => 'envs/e1') %>" >
-文本显示为纯文本data-content= "<%= render :partial => raw('envs/e1') %>" >
-文本显示为纯文本data-content= "<%= render :partial => 'envs/e1' %>".html_safe
-文本显示为纯文本data-content= "<%= render :partial => 'envs/e1'.html_safe %>"
-文本显示为纯文本必须有某种方式可以在Popover内部设置局部样式?
还是我做错了一切?
请给我提意见
提前致谢。
最佳答案
我相信您必须在弹窗跨度中启用data-html = "true"
。
至少它在我的机器上工作。
所以它会写成这样:
<span class="has-popover"
style="cursor:pointer;"
data-toggle="popover"
data-trigger="hover"
data-html="true" <!-- This is what you have to add to the code -->
data-container="body"
data-placement="right"
title="Lorem Ipsum"
data-content= "<%= render :partial => 'envs/e1' %>" >