1

ハンドルバーに関する公式流星ウィキが言ったように:

ヘルパーを複数のテンプレートから見えるようにする唯一の方法は、それぞれに同じ関数を割り当てるか、グローバル ヘルパーを宣言することです。

私は望遠鏡を使用してアプリを構築していますが、問題は次の画像のようにユーザー プロファイルの「member since」の値が欠落していることです。
ここに画像の説明を入力
/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() : '–';
});

その後、すべてがこのように大丈夫です
ここに画像の説明を入力

私が疑問に思うのは、なぜTemplate.user_profile.createdAtFormatted = Template.user_item.createdAtFormatted;私や著者が望むように割り当てが機能しなかったのかということです。

4

1 に答える 1

3

これはおそらくhelper、Meteor のわずかな不一致が原因です。ヘルパーは後で Meteor に追加されたと思います。

基本的に、Meteor でヘルパーを定義するには 2 つの方法があります。1つは次のとおりです。

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

以下は同じことをするはずです:

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

しかし、後者の使用では定義がhelpers作成されないため、上記は として出力されます。これはおそらく meteor のバグであり、修正する必要があります。問題を開きました: https://github.com/meteor/meteor/issues/886Template.user_item.createdAtFormattedundefined

于 2013-03-27T15:12:32.613 に答える