2013-10-12 51 views
0

我試圖創建包含登錄表單的主頁面(node.js和mongoDB應用程序的一部分)。 添加視圖部分我包含帶有返回HTML的函數的js文件,但正如我可以看到的更好的是使用模板引擎。 一切都好,直到我包括一個編譯的swig部分在另一個裏面。 主頁輸出可以,但登錄部分輸出如同頁面上的文字。 如何輸出登錄HTML作爲HTML而不是純文本?Node.js和swig模板引擎 - 包括模板內部的模板

是否需要更多信息來理解問題?

預先感謝您。

var swig = require('swig'); 
var mainPage_tpl = swig.compileFile(__dirname+'/../views/mainpage_tpl.html'); 
var formLogin_tpl = swig.compileFile(__dirname+'/../views/login_tpl.html'); 

var loginOutput = formLogin_tpl(); 
var mainPageOutput = mainPage_tpl({ 
    title: 'Sometitle', 
    pagetitle: 'Somepagetitle', 
    content: loginOutput 
}); 

exports.get = function(req, res){ 
    res.writeHead(200, {'Content-Type': 'text/html'}); 
    res.write(mainPageOutput); 
    res.end(); 
} 

mainpage_tpl.html:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>{{title}}</title> 
    <link rel="stylesheet" href="/assets/reset.css" /> 
    <link rel="stylesheet" href="/assets/style.css" /> 
    <script type="text/javascript" src="/assets/jquery-2.0.0.js"></script> 
    <script type="text/javascript" src="/assets/script.js"></script> 
</head> 

<body id="login_page"> 
    <h1>{{pagetitle}}</h1> 
    <div id="content">{{content}}</div> 
</body> 
</html> 
+0

是..請追加你的mainpage_tpl.html以及你如何嵌入* content *變量 – Sriharsha

回答

0

如果你想包括文字HTML,你需要告訴痛飲使用safe過濾它無法逃避:

... 
<div id="content">{{ content|safe }}</div> 
... 
+0

你可以請用手冊告知「安全」 – Pumych

+0

@Pumych有一個鏈接到manu在「安全」字下面(鏈接指向http://paularmstrong.github.io/swig/docs/filters/#safe) – robertklep