如何在模板内的对象上执行函数

时间:2017-02-07 10:08:50

标签: javascript handlebars.js

我有简单的车把模板:

'<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;
});

无论我尝试什么,我总是会收到这个错误:

  

“第1行上的解析错误:\ n ... {{#getId}} \ n ----------------------- ^ \ nExpecting' OPEN_INVERSE_CHAIN','INVERSE','OPEN_ENDBLOCK',得到'EOF'“

如果我从模板中删除了getId,那么它会按预期工作。

1 个答案:

答案 0 :(得分:1)

首先,您需要创建新的Handlebars帮助程序:

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

然后你可以使用:

来调用它
<span>{{getId someParam}}</span>