2014-09-03 58 views
0

我想將一個.js文件傳遞給一個玉石模板以在ACE編輯器中渲染它。但對於某些文件(可能有正則表達式和其他轉義字符),編輯器不會呈現,並且在瀏覽器中出現錯誤,我應該如何編碼/轉義文件以使其始終呈現正確?我試過encode/decodeURIcomponent ......我想這是Jade導致的問題。爲jade模板編碼javascript

或者我應該在頁面呈現後嘗試發送文件,而不是將它作爲模板的一部分展開?

服務器:

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); 
+0

嘗試'var fileContent =!{editFile};'代替。 – 2014-09-08 13:03:25

+0

好的我有它你需要var fileContent =!{JSON.stringify(editFile)}; – hartsr 2014-09-11 11:58:58

回答

0

因此,解決辦法似乎是:

var fileContent = !{JSON.stringify(editFile)}; 

感謝所有。