2016-12-21 54 views
1

我在練習節點,並且遇到了一些小問題。我使用handlebars作爲模板引擎,並使用貓鼬與我的數據庫進行交互。在我.hbs模板,我通過從數據庫中每個記錄循環,當然我通過記錄我的看法與循環陣列時的把手數學表達式

router.get('/', function(req, res, next) { 
Exam.find(function(err, predmeti) { 
if (err) { 
    console.log(err); 
} 
    res.render('index',{ 
    predmeti: predmeti 
    }) 
}) 

}); 

現在,當IM通過predmeti與#each循環,發動機拋出當我嘗試錯誤做數學表達式,如

{{#each predmeti}} 
<h1>{{100/(brKolokvijuma/finished)}}</h1> 
{{/each}} 

brKolokvijuma and finished都有一個數值,但由於某種原因,我得到一個錯誤期待ID得到OPEN_SEXPR

所以我假設漢當我通過一個數組循環時,dlebars不會讓我做數學表達式。我該如何解決這個問題?

回答

1

Handlebars有一些插件可以讓你做他們認爲你不應該做的事情,但是每個人都仍然想要。

例如the Assemble.io maths helpers,以及嵌套表達式將使你做一些事情,如:

{{#each predmeti}} 
    <h1>{{divide 100 (divide brKolokvijuma finished)}}</h1> 
{{/each}} 

第二種方法,如果你的數學表達式不是千差萬別,而在你的看法重用(常見的計算如稅收或倒圓) ,你可以寫你自己的簡單/打火機插件:

{{divideMyThings 100 brKolokvijuma finished}} 

Handlebars.registerHelper("divideMyThings", function(thing1, thing2, thing3) { 
    return thing1/thing2/thing3; 
}); 

在你的模板調用

第三,通常可以預先計算數據表,直到只有一個變量,然後使用builtin lookup feature。這不需要額外的插件。這可能對這個具體問題沒有幫助,但我想我會提及它作爲一種工具。