如何从手柄脚本中调用JavaScript函数? 原因是:
我无法从车把内部打破{{#each}}
。所以我需要将它传递给JavaScript来做逻辑。
答案 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的最小诱惑语言,因此它不允许您从模板中执行任意代码。但是,把手会为您提供帮助,让您可以在模板上执行预定义的代码。内置的内容包括:each
,unless
,if
和else
。
您可以使用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