根据这个blog post,我应该注册一个帮助器来更好地调试把手模板,但是不起作用:
ReferenceError: Handlebars is not defined
那么,我怎样才能在流星/把手中{{debug}}
?
答案 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个代表。