簡體   English   中英

Node.js Express把手如何在沒有模板的情況下將.hbs包含在另一個.hbs中

[英]Nodejs Express handlebars how to include .hbs inside another .hbs without templates

如何在沒有模板的情況下將.hbs包含在另一個.hbs中? 我為Nodejs wih Express使用了基於組件的體系結構,我需要在文件中包含hbs文件,以便在html和js雙方都使用{{values}} ,而無需進行任何重復和清理。

我試過像這樣使用partialsDir:

app.engine('.hbs', exphbs({
    defaultLayout: 'layout',
    extname: '.hbs',
    layoutsDir: path.join(__dirname),
    partialsDir: [
        path.join(__dirname, 'dashboard', '_public', 'main'),
        path.join(__dirname, 'home', '_public', 'main')
    ]
}));

但它會獲取所有路線的所有視圖的所有腳本。 並使用{{>viewScript}} (模板)加載所有.hbs(當我回家時,我擁有home部分.hbs,當我進入儀表板時,我擁有home和儀表板部分.hbs,因此無法使用為了我。

我嘗試使用src,但不起作用(MIME錯誤)

<script src="viewScript.hbs"></script>

我可以在一個.hbs文件中將兩個.hbs與其自己的js組合在一起,好的,但是我想將這些部分分開。

對於這種情況,我找到了一個干凈的解決方案,可以將這些片段放在單獨的文件中(當您將組件中的視圖而不是將所有視圖都放在一個路徑上時,比任何一種復雜的模板系統都更簡單)。

在.hbs中可以是一本小詞典,然后再將我可能需要的所有字符串值加載到腳本中。

<script>
    var hello = "{{{lang.hello}}}";
</script>
<script src="viewScript.js"></script>

這個方法很簡單,不要重復任何東西,而讓我去用jquery和更多的東西做動態名稱。

暫無
暫無

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

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