如何在Meteor / Handlebars中调试模板?

时间:2012-09-04 22:30:13

标签: meteor handlebars.js

根据这个blog post,我应该注册一个帮助器来更好地调试把手模板,但是不起作用:

ReferenceError: Handlebars is not defined

那么,我怎样才能在流星/把手中{{debug}}

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:6)

在Meteor 0.4.0中,你注册了这样的处理程序:

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

无需直接致电Handlebars。

答案 2 :(得分:4)

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

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

这应该可以通过模板中的{{helper}}来调用。

答案 3 :(得分:1)

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

Template.registerHelper('helper', helperFunc);

而不是Handlebars.regsterHelper('h',f);

这个更好的一个小原因是,如果您决定在某个地方使用其他东西而不是Handlebars(即Spacebars,那么您的应用程序将不需要那么多的重构。像jade for meteor一样的流星适应。

这实际上是对accepted answer的评论。期待有一天能达到50个代表。