2017-01-13 32 views
0

我對NodeJS還很新,我使用express和express-handlebar軟件包。 但是,'if-statement'不能正常工作,事實上根本就沒有。我想這是因爲我不使用if語句的模板。express-handlebars#if語句

只需使用包 '把手',我會去的:

rs.readFile('files/test.hbs', 'utf-8', function(err, data) 
{ 
var template = hbs.compile(data); 
var result = template ({name: 'name', value1: 'value1', value2: 'value2'}); 
res.end (result); 
... 
} 

該解決方案的實際工作。

但是,我已經在整個代碼中使用了express-handlebars,並且希望繼續使用它。我有下面的代碼:

//I´ll receive value1 and value2 later either directly from my database or with the help of MQTT 
var value1 = ' value1'; 
var value2 = 'value2'; 
var name = 'name'; 
var helpers={ 
     value1:function(){return value1;}, 
     value2:function(){return value2;}, 
     name: function(){return name;} 
     } 


router.get('/', function(req, res){ 
      res.render('index', {helpers}); 
     }); 

我的HTML代碼看起來像以下:

<div> 
    <h1> {{value1}} </h1> 
    <h2> {{value2}} </h2> 
     {{#if name}} 
      <h3> hello there! </h3> 
     {{/if}} 

    </div> 

值1和值2的正常顯示。 '你好!'我想這不是一個模板。 有誰知道我可以如何使代碼與快遞句柄一起工作?

回答

0

我只是自己回答。 解決方法是:

 router.get('/', function(req, res){ 
     res.render('index', { 
     name, 
     helpers}); 
    });