从车把调用Javascript功能

时间:2014-02-18 06:14:32

标签: javascript handlebars.js

如何从手柄脚本中调用JavaScript函数? 原因是:

我无法从车把内部打破{{#each}}。所以我需要将它传递给JavaScript来做逻辑。

3 个答案:

答案 0 :(得分:40)

你可以用助手来做到这一点;

Handlebars.registerHelper("printItems", function(items) {
  var html = "<ul>";
  items.forEach(function(entry) {
    html += "<li>" + entry + "</li>";
  });
  html += "</ul>";
  return html;
});

并在您的车把模板中;

{{printItems items}}

以上代码会将您的商品列入清单。

有关详细信息,请参阅here。转到帮助部分

答案 1 :(得分:5)

Handlebars是JavaScript的最小诱惑语言,因此它不允许您从模板中执行任意代码。但是,把手会为您提供帮助,让您可以在模板上执行预定义的代码。内置的内容包括:eachunlessifelse

您可以使用Handlebars.registerHelper方法创建自己的帮助程序。这是一个格式化电话号码的简单示例。只要您在调用之前注册帮助程序,您就可以在代码中的任何位置使用{{formatPhoneNumber phoneNumber}}

Handlebars.registerHelper("formatPhoneNumber", function(phoneNumber) {
  phoneNumber = phoneNumber.toString();
  return "(" + phoneNumber.substr(0,3) + ") " + 
    phoneNumber.substr(3,3) + "-" + 
    phoneNumber.substr(6,4);
});

注意:虽然技术上可以从帮助程序中执行非呈现代码,但这被认为是不好的做法,如果可能的话应该避免使用。

答案 2 :(得分:1)

要处理Handlebars模板中的数据操作,您需要添加帮助程序并在模板中调用该帮助程序。

在这里阅读更多内容......

http://blog.teamtreehouse.com/handlebars-js-part-2-partials-and-helpers