6

According to this blog post, I should register a helper to better debug handlebars templates, but is not working:

ReferenceError: Handlebars is not defined

So, how can I {{debug}} in Meteor/handlebars?

4

4 回答 4

15

这是我在自己的项目中用于调试的辅助函数:

Template.registerHelper("debug", function(optionalValue) { 
  console.log("Current Context");
  console.log("====================");
  console.log(this);

  if (optionalValue) {
    console.log("Value"); 
    console.log("===================="); 
    console.log(optionalValue); 
  } 
});

然后,您可以在模板中调用它,{{debug}}它会显示您当前所在的上下文。在http://docs.meteor.com/#/full/template_registerhelper阅读更多内容。

于 2012-11-21T00:15:17.840 回答
6

在 Meteor 0.4.0 中,您可以像这样注册处理程序:

Template.myTemplate.helpers({
  helper: function () {
    // some code here
    console.log(arguments);
  }
});

无需直接调用 Handlebars。

于 2012-09-07T01:32:54.517 回答
4

确保您在客户端(或共享)流星代码中注册了您的助手。

Handlebars.registerHelper('helper', function() {
  // Do stuff
});

这应该可以{{helper}}在您的模板中调用。

于 2012-09-05T10:18:25.937 回答
2

为了完整起见:您也可以使用

Template.registerHelper('helper', helperFunc);

代替Handlebars.regsterHelper('h',f);

这样做更好的一个小原因是,如果您决定在某个地方使用其他东西而不是 Handlebars(即Spacebars,流星适应的真实名称),例如玉用于流星,那么您的应用程序将不需要那么多重构.

这确实是对已接受答案的评论。期待有一天能达到 50 次。

于 2014-12-17T22:03:27.397 回答