Meteor 不同模板的同一帮助器

Meteor 不同模板的同一帮助器,meteor,Meteor,正如秘书长所说: 使辅助对象对多个模板可见的唯一方法是为每个模板指定相同的函数,或声明一个全局辅助对象 我正在使用构建一个应用程序,问题是用户配置文件中的“member-since”值丢失,如下图所示。 作为/client/views/users/user_profile.js中的源代码 Template.user\u profile.createdAtFormatted=Template.user\u item.createdAtFormatted 不好用 这里是/client/views/

正如秘书长所说:

使辅助对象对多个模板可见的唯一方法是为每个模板指定相同的函数,或声明一个全局辅助对象

我正在使用构建一个应用程序,问题是用户配置文件中的“member-since”值丢失,如下图所示。

作为/client/views/users/user_profile.js中的源代码
Template.user\u profile.createdAtFormatted=Template.user\u item.createdAtFormatted
不好用

这里是/client/views/users/user\u item.js
Template.user\u 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\u profile.createdAtFormatted=Template.user\u item.createdAtFormatted
没有按照我或作者希望的方式工作?

这可能是因为Meteor中的
助手有点不一致。我想帮手是后来在《流星》中加入的

基本上有两种方法来定义meteor中的助手。一是:

Template.user_item.createdAtFormatted = function() {...}
以下内容也应该做同样的事情:

Template.user_item.helpers({
    'createdAtFormatted':function() {
    ...
    }
});
但是后者使用
助手
不会创建
模板.user\u item.createdAtFormatted
定义,因此上面的定义为
未定义
。这很可能是流星中的一个bug,应该修复。我打开了一个问题: