2017-02-07 29 views
1

裏面我有簡單的車把模板:如何在對象上執行函數模板

'<h1>Order number: {{orderNumber}}</h1>' 

這工作正常。

現在我有情況,我通過它渲染的對象有一個函數返回自己的ID。它是這樣的:

'<h1>Order number: {{orderNumber}}</h1><h2>Order ID:{{getId()}}</h2>' 

我該如何讓Handlebar執行getId()並將它的值代替?

我的失敗嘗試。

模板:

'<h4>Order number: {{orderNumber}}</h4><h4>{{#getId }}</h4>' 

註冊功能:

hbs.registerHelper('getId', function(param, opts) { 
    //return param.getId() 
    return 666; 
}); 

無論我怎麼努力,我總是得到這個錯誤:

"Parse error on line 1:\n...{{#getId }}\n-----------------------^\nExpecting 'OPEN_INVERSE_CHAIN', 'INVERSE', 'OPEN_ENDBLOCK', got 'EOF'"

如果我從模板中刪除的getId,那麼它按預期工作。

回答

1

首先,你需要創建新的把手幫手:

Handlebars.registerHelper('getId', function(param, opts) { 
    return 1; 
}); 

然後你可以使用稱之爲:

<span>{{getId someParam}}</span> 
+0

我試過了,不能得到它的工作。你能檢查我的edite問題嗎? –

+0

你使用這種語法來調用helper'{{##getId someParam}}'嗎?沒有'()','#'在開始。 'Handlebars.registerHelper' - 也很重要,它是全球註冊 – VadimB

+0

是的,我這樣做。正如我編輯的問題。 –

相關問題