我在Meteor应用中使用了包livestamp-hs
。这工作正常,除了在控制台中我看到错误消息:Uncaught ReferenceError: Handlebars is not defined
,这是由此包(helpers.js)引起的:
if(Meteor.isClient) {
Handlebars.registerHelper('livestamp', function(timestamp) {
return new Handlebars.SafeString('<span class="livestamp" data-livestamp="'+ timestamp +'"></span>');
});
}
我检查了这个包的package.js
以查看是否正在使用把手,据我所知这是可以的:
Package.on_use(function(api) {
api.use(['jquery', 'handlebars'], 'client');
api.add_files(['moment.min.js', 'livestamp.min.js', 'helpers.js'], 'client');
});
虽然这在localhost上不是一个大问题,但在部署到meteor.com或heroku.com时会导致无限循环。有什么想法可以解决这个问题吗?
答案 0 :(得分:1)
在Meteor 0.8中,handlebars
包被ui
包替换。您需要在package.js
文件中使用它,以确保将其拉入。
Handlebars.registerHelper
仍然有效,但UI.registerHelper
是新语法。
另一方面,livestamp是过去十年创建更新时间戳的方式。我建议使用基于Meteor的方式在客户端上使用时间,该方式是被动的并且与服务器时间同步:https://github.com/mizzao/meteor-timesync。 (免责声明:我保留该套餐。)