我的网页中嵌入了一个ace编辑器,我希望从数据库中保存/加载一串代码并将其插入带有editor.setValue(sometext)
的ace编辑器
我的数据库中的代码字符串就像public class Solution {\n\t\n}
,在我的page.js中,我有以下代码将字符串注入编辑器:
editor.setValue("<%= @submission.source_code.inspect[1..-2] %>", 1);
其中@submission.source_code
是我想要的代码,我在ruby中使用.inspect
来摆脱&amp; quot事物。
但是如果我在编辑器中修改代码并保存,那么下次我从db加载代码时,它只是将每一行放入具有许多空格的同一行。所以我想知道如何将代码保存到db中并使其在下一次加载时仍具有相同的格式?
这是我的编辑页面代码:
<%= form_for(@submission, url: save_path) do |f| %>
<pre id="editor" style="height: 86vh; margin-bottom: 0px"></pre>
<%= f.text_field :source_code, id: :submission_source_code %>
<%= f.number_field :assignment_id, id: :submission_assignment_id, style: "display: none", :value => @assignment.id %>
<% end %>
<script>
var editor = ace.edit("editor");
var input = $('input[id="submission_source_code"]').hide();
editor.setTheme("ace/theme/xcode");
editor.getSession().setMode("ace/mode/java");
editor.setShowPrintMargin(false);
editor.setOptions({fontSize: "14px"});
editor.setValue("<%= @submission.source_code.inspect[1..-2] %>", 1);
editor.getSession().on('change', function() {
input.val(editor.getSession().getValue());
console.log(input.val());
});
</script>
例如,当我保存以下代码时:
public class Solution {
public int fib(int n) {
return n;
}
}
它变成了这个: