簡體   English   中英

如何將視圖加載到變量中?

[英]How do I load a view into a variable?

我需要使用 websockets 發送視圖,以便可以在選項卡中加載它。 但我似乎無法弄清楚如何將視圖加載到變量中以進行發送。 似乎加載視圖的唯一方法是調用response.render() function。

有任何想法嗎?

大多數模板引擎可以將模板呈現為內存中的字符串,然后您可以將其作為原始數據通過 web 套接字發送。 這是的例子。

var jade = require('jade');

// Render a string
jade.render('string of jade', { options: 'here' });

// Render a file
jade.renderFile('path/to/some.jade', { options: 'here' }, function(err, html){
    // options are optional,
    // the callback can be the second arg
});

如果您具體提及您使用的模板引擎,我們可以在需要時給出具體示例。

以下是使用 EJS的方法:

html = new EJS({url: '/template.ejs'}).render(data)

雖然彼得的解決方案適用於 Jade,但我使用的是 EJS。 而且EJS沒有renderFile function。 因此,這是讀取普通 HTML 文件的通用方法:

s.readFile(__dirname + '/views/tabs/' + data.tab + '/index.ejs', 'utf8', function( err, html )
{
    socket.emit( 'setTabHTML', { tab: data.tab, 'html': html });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM