【发布时间】:2014-09-03 01:14:07
【问题描述】:
我正在尝试将 .js 文件传递给玉模板,以使其在 ACE 编辑器中呈现。但是对于某些文件(可能有正则表达式和其他转义字符),编辑器不会呈现并且我在浏览器中遇到错误,我应该如何对文件进行编码/转义以使其始终正确呈现?我试过 encode/decodeURIcomponent... 我猜是 Jade 导致了这个问题。
或者我应该尝试在页面呈现后发送文件而不让它作为模板的一部分展开?
服务器:
editFile = fs.readFileSync(fileName, 'utf8'); //JavaScript file
res.render('editor', { title: 'File Editor '+fileName, editFile: editFile });
翡翠模板:
#editor
script(src='/ace/ace.js', type='text/javascript', charset='utf-8')
script(type='text/javascript', charset='utf-8').
var fileContent = '!{editFile}';
var editor = ace.edit("editor"); //standard div
editor.getSession().setMode("ace/mode/javascript");
editor.setValue(fileContent);
【问题讨论】:
-
改用
var fileContent = !{editFile};。 -
好的,我知道了,你需要 var fileContent = !{JSON.stringify(editFile)};
标签: javascript node.js express pug encode