我在自己的应用程序中实现了https://github.com/tsechingho/ckeditor-rails,并希望进一步在best_in_place文本区域中实现它。
application.js
$('.ckeditor').ckeditor({
// optional config
});
view.html.erb
<%= best_in_place @post, :body, :as => :textarea, class: 'ckeditor', inner_class: 'ckeditor form-control', ok_button: 'Update', ok_button_class: 'btn btn-outline-success btn-sm', raw: true%>
这不起作用。
如果我做这样的事情:
<%= form_for @post do |f| %>
<%= f.text_area :body, class: 'ckeditor'%>
<% end %>
它可以工作,但是我希望它在我的best_in_place文本区域内。
我希望在项目中实现内联ckeditor版本。我不想用ckeditor区域替换文本区域,我只想使用现有文本区域的工具栏。
<div class="col-12 col-md-8">
<% if current_user == @post.user || current_user.try(:admin?) %>
<%= best_in_place @post, :body, :as => :textarea, class: 'ckeditor', inner_class: 'ckeditor form-control', ok_button: 'Update', ok_button_class: 'btn btn-outline-success btn-sm', raw: true%>
<% else %>
<p class="postbody"><%= sanitize @post.body %></p>
<% end %>
<div class="py-3">
答案 0 :(得分:0)
这里的事情是textarea是动态生成的,因此您需要在textarea在那里后运行ckeditor的初始化,类似这样
$(document).ready(function(){
$('.best_in_place').bind('best_in_place:activate', function(){
alert("hey it's working");
$('.ckeditor').ckeditor({
// optional config
});
});
});
在激活文本区域时,您可以初始化ckeditor,当然,最好将它绑定到您想要的与ckeditor绑定的那个,这样它就不会在每个输入上都运行编辑器的初始化。