无法从 ace.js-div 获取文本 express.js
Unable to get text from ace.js-div in express.js
我正在使用 ace.js(https://github.com/ajaxorg/ace) 创建代码段编辑器。 html 看起来像这样:
<div id="editor" name="editor">{{ text }}</div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/ace/1.1.3/ace.js"></script>
<script>
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/javascript");
</script>
当我更改了文本后,我想保存到 mongoose-db。但是我无法在 post-请求中从编辑器中获取文本。调用保存请求时如何从 div 中获取文本?
router.route("/home/save/:id")
.post(function(request, response) {
console.log(request.body.editor) // -> undefined
console.log(request.body) // -> {}
});
对于这个可能比较挑剔的问题,我们深表歉意。很难解释这个问题。但是如果有人出于某种原因遇到同样的情况,我会通过一种懒惰的解决方案来解决它。
我从 https://jsfiddle.net/deepumohanp/tGF6y/ 中得到灵感,从 ace-div 中获取文本并将其放入输入中。然后我就得到了下一个请求的输入:
{{> nav }}
<div id="editor">{{ text }}</div>
<form action="/home/save/{{ this.sessionId }}" method="post">
<input type="text" value="" name="content" id="content">
<button>Save</button>
</form>
<script src="http://cdnjs.cloudflare.com/ajax/libs/ace/1.1.3/ace.js"></script>
<script>
var textarea = document.querySelector("#content");
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/javascript");
console.log(textarea.value);
console.log(editor.getSession().getValue());
editor.getSession().on("change", function () {
textarea.value = editor.getSession().getValue();
});
textarea.value = editor.getSession().getValue();
</script>
这样,request.body.content 返回文本:
router.route("/home/save/:id")
.post(function(request, response) {
console.log(request.body.content) // -> text
});
我正在使用 ace.js(https://github.com/ajaxorg/ace) 创建代码段编辑器。 html 看起来像这样:
<div id="editor" name="editor">{{ text }}</div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/ace/1.1.3/ace.js"></script>
<script>
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/javascript");
</script>
当我更改了文本后,我想保存到 mongoose-db。但是我无法在 post-请求中从编辑器中获取文本。调用保存请求时如何从 div 中获取文本?
router.route("/home/save/:id")
.post(function(request, response) {
console.log(request.body.editor) // -> undefined
console.log(request.body) // -> {}
});
对于这个可能比较挑剔的问题,我们深表歉意。很难解释这个问题。但是如果有人出于某种原因遇到同样的情况,我会通过一种懒惰的解决方案来解决它。
我从 https://jsfiddle.net/deepumohanp/tGF6y/ 中得到灵感,从 ace-div 中获取文本并将其放入输入中。然后我就得到了下一个请求的输入:
{{> nav }}
<div id="editor">{{ text }}</div>
<form action="/home/save/{{ this.sessionId }}" method="post">
<input type="text" value="" name="content" id="content">
<button>Save</button>
</form>
<script src="http://cdnjs.cloudflare.com/ajax/libs/ace/1.1.3/ace.js"></script>
<script>
var textarea = document.querySelector("#content");
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/javascript");
console.log(textarea.value);
console.log(editor.getSession().getValue());
editor.getSession().on("change", function () {
textarea.value = editor.getSession().getValue();
});
textarea.value = editor.getSession().getValue();
</script>
这样,request.body.content 返回文本:
router.route("/home/save/:id")
.post(function(request, response) {
console.log(request.body.content) // -> text
});