程序包livestamp-hs未定义句柄错误

时间:2014-06-10 06:16:54

标签: meteor

我在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时会导致无限循环。有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

在Meteor 0.8中,handlebars包被ui包替换。您需要在package.js文件中使用它,以确保将其拉入。

Handlebars.registerHelper仍然有效,但UI.registerHelper是新语法。

另一方面,livestamp是过去十年创建更新时间戳的方式。我建议使用基于Meteor的方式在客户端上使用时间,该方式是被动的并且与服务器时间同步:https://github.com/mizzao/meteor-timesync。 (免责声明:我保留该套餐。)