Ace编辑器(表单) - 我可以保留换行符/文本格式吗?

时间:2018-03-30 02:12:27

标签: javascript html ruby ace-editor sinatra-activerecord

为我的学校建立一个MVC Sinatra应用程序的项目。我想创建一个可以使用ace编辑器保存和显示片段/算法的Web应用程序。

我想通过隐藏输入字段并通过下面的代码片段在更改时分配来自ace的值,从而想出如何(看似)通过ace编辑器捕获表单输入。

//CAPTURE/SET VALUE
var textarea = $('input[name="content"]');
editor.getSession().on("change", function () {
    textarea.val(editor.getSession().getValue());
});

我的表单看起来像这样

<!--ACE EDITOR-->
<div id="editor"></div>
To open settings panel, inside editor - CTRL+Q (Windows) | CMD+Q (Mac)
<!--------------------------------------------------------->

<!--FORM-->
<form action="/ace" method="POST"> 

  <!--normal-->
  <input type="text" name="content" style="display: none;" />

  <!--submit-->
  <input type="submit" value="Save">
</form>

我可以很好地捕获params,但问题是它不会保留换行符,所以进入......

def something

end

进入ace编辑器并点击提交给我回复

"def something  end"

当我在理论上喜欢得到像

这样的东西时
"def something\n\nend"

或类似的东西......你得到漂移

我需要能够以某种方式使用编辑器捕获输入,并在提交时将其分配给对象属性,以便伪

snippet = Snippet.new(:content => params[:content])

然后能够回拨并以正确的格式显示在编辑器上

snippet.content (preserves linebreaks) 

完整代码和图片HERE,如果您更喜欢视觉效果。 任何帮助将不胜感激,如果有什么我错过了请告诉我..希望我已经提供了足够的信息和详细的正确。

1 个答案:

答案 0 :(得分:1)

输入不接受换行符,您需要使用textarea。