2015-11-20 47 views
0

我使用handelbars作爲我的模板引擎,我很好奇我是否可以編輯主要的handlebars文件。我當時可以做的是這樣的:如何在主把手骨架中動態地改變某些東西?

main.handlebars:

<html> 
    <head> 
    </head> 
    <body> 
    <div id='headerBox></div> 
    <div id='contents'>{{{body}}}</div><!--all contents goes here--> 
    </body> 

當我用這個方法,我將可以創建模板,例如home.handlebars等

但是如果我想在main.handlebars中動態地改變某些東西?例如,在我的網站,我很想有一個登錄表單,所以我想有這樣的事情在main.handelbars:

<html> 
    <head> 
    </head> 
    <body> 
    <div id='headerBox>{{If logged in print name, if not print sign up}}</div> 
    <div id='contents'>{{{body}}}</div><!--all contents goes here--> 
    </body> 
</html> 

TLDR,怎麼我在動態的主要車把骨架改變一些東西。

謝謝!

回答

0

你會想寫一個Handlebars Helper函數。由於您沒有提供關於如何驗證登錄信息的任何內容,因此我會寫一點演示。

在你的模板文件:

<div id='headerBox'>{{header}}</div> 
Handlerbars.registerHelper('header', function() { 
    if (loggedIn) { 
     return //however you're getting a username 
    } else { 
     return <a href="/signup.html">Sign Up</a> 
    } 
}); 
+0

我正在學習用快遞的node.js目前我使用有默認的系統。 (例如,main.handlebars進入佈局文件夾),我所有的子視圖進入視圖文件夾。我只在node.js之前完成了一些php,所以我會這樣做: Handlerbars.registerHelper('header',function(){ if(node.jsSession is set){ return username } else { return Sign Up } }); 我如何將它與node.js結合使用? – mre12345