我使用Medium 编辑器能够编辑一些内容,然后将其存储到数据库中。对于“新”视图,我使用渲染显示来自模板的 html。然后对于“编辑”视图,我显示带有数据库查询的 html。Medium 编辑器显示“新”视图,但不显示“编辑”视图(但 contenteditable 为真)。知道为什么它不适用于这个特定的视图吗?
新观点:
<nav id="nav_sections">
<ul id="ul_menu">
<li id="header_nav">GO TO SECTION</li>
<li><a href="#title">Introduction</a></li>
</ul>
<%= render 'form', guide: @guide %>
</nav>
<%= render 'layouts/template' %>
<% content_for :save_js do %>
<script type="text/javascript" src="/javascripts/lib/save.js"></script>
<script type="text/javascript" src="/javascripts/lib/menu.js"></script>
<% end %>
编辑视图:
<nav id="nav_sections">
<ul id="ul_menu">
<li id="header_nav">GO TO SECTION</li>
<li><a href="#title">Introduction</a></li>
</ul>
<%= render 'form', guide: @guide %>
</nav>
<%= raw @guide.html %>
<% content_for :save_js do %>
<script type="text/javascript" src="/javascripts/lib/menu.js"></script>
<script type="text/javascript" src="/javascripts/lib/save.js"></script>
<% end %>
保存.js:
$('.container_content').children('section').children().each(function (element) {
if ($(this).is("section")) {
$(this).each(function () {
$(this).children().each(function () {
$(this).addClass( "changeable" );
});
});
}
else {
$(this).addClass( "changeable" );
}
});
var editor = new MediumEditor('.changeable');
var contents = $('.changeable').html();
var new_content = $('.container_content').clone().wrap('<p>').parent().html();
$('#input').val(new_content);
$('.changeable').blur(function() {
if (contents!=$(this).html()){
var guide = $('.container_content').clone().wrap('<p>').parent().html();
$('#input').val(guide);
contents = $(this).html();
}
});