2013-03-27 67 views
1

official meteor wiki about handlebars相同的助手說:對於不同的模板

只有這樣,才能使多個模板可見的一個助手是相同的功能分配給每一個,或宣佈一個全球性的幫手。

我正在使用telescope來構建一個應用程序,問題在於用戶配置文件中的「member since」的值缺失,如下圖所示。
enter image description here
在/client/views/users/user_profile.js源代碼 Template.user_profile.createdAtFormatted = Template.user_item.createdAtFormatted; 不能很好地工作。

,這裏是在/client/views/users/user_item.js Template.user_item

Template.user_item.helpers({ 
createdAtFormatted: function(){ 
    return this.createdAt ? moment(this.createdAt).fromNow() : '–'; 
}) 

的幫手,當我在/client/views/users/user_profile.js改變這樣的代碼:

Template.user_profile.createdAtFormatted = function() { 
    return this.createdAt ? moment(this.createdAt).fromNow() : '–'; 
} 

或作出這樣

Handlebars.registerHelper("createdAtFormatted", function(){ 
    return this.createdAt ? moment(this.createdAt).fromNow() : '–'; 
}); 

在全球各地的幫手,一切都好像這樣
enter image description here

我想知道爲什麼作業Template.user_profile.createdAtFormatted = Template.user_item.createdAtFormatted;沒有按照我或作者的方式工作?

回答

3

這可能是因爲流星中存在輕微的不一致,因爲helper &略有不一致。我認爲助手稍後會在流星中加入。

基本上有兩種方法來定義流星中的助手。其一是:

Template.user_item.createdAtFormatted = function() {...} 

及以下應該做同樣的事情:

Template.user_item.helpers({ 
    'createdAtFormatted':function() { 
    ... 
    } 
}); 

但使用helpers犯規創建Template.user_item.createdAtFormatted定義所以上面出來爲undefined後者。這很可能是流星中的一個錯誤,應該修復。我開了一個問題:https://github.com/meteor/meteor/issues/886