2014-06-10 15 views
0

我在我的Meteor應用程序中使用包livestamp-hs。這工作正常,除了在我看到錯誤消息控制檯:Uncaught ReferenceError: Handlebars is not defined,這是由該包引起的(helpers.js):Handlebars未定義包包livestamp-hs

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'); 

}); 

雖然這不是在本地主機上的一個大問題,它部署到任何meteor.com或heroku.com時,導致一個無限循環。任何想法來解決這個問題?

回答

1

在流星0.8中,handlebars包被替換爲ui包。您需要在您的package.js文件中使用該文件以確保您將其拉入。

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

另一方面,livestamp是過去十年創建更新時間戳的方法。我建議使用基於Meteor的方式在客戶端上使用時間,該響應時間和服務器時間同步:https://github.com/mizzao/meteor-timesync。 (免責聲明:我保留該包。)

+0

當我用戶''UI.registerHelper'',它返回''UI未定義'? – John

+0

如果我想在你的軟件包中使用類似「5分鐘前」的東西,我該怎麼做?你有我的例子嗎?謝謝! – John

+0

明白了,我需要改變''package.js''中的''api.use(['jquery','ui'],'client');''。現在它的作品 – John