从车把调用Javascript功能

Ven*_*h K 23 javascript handlebars.js

如何从Handlebars脚本中调用JavaScript函数?原因:

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

Hüs*_*BAL 41

你可以用帮手做到这一点;

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

并在你的车把模板;

{{printItems items}}
Run Code Online (Sandbox Code Playgroud)

上面的代码会将您的项目列入清单.

更多细节请参考这里.转到帮手部分

  • 这是超级麻烦 (4认同)

Bae*_*aer 5

Handlebars是JavaScript的最小诱人语言,因此它不允许您从模板中执行任意代码.但是,把手会为您提供帮助,让您可以在模板上执行预定义的代码.内置的的有:each,unless,ifelse.

您可以使用该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);
});
Run Code Online (Sandbox Code Playgroud)

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