如何制作返回用户个人资料名称的全局帮助器?

时间:2015-12-28 20:55:19

标签: meteor meteor-blaze meteor-accounts meteor-helper

如何制作返回用户个人资料名称的注册助手?

我想制作一个全局模板助手,在视图中显示用户个人资料名称。因此,用例将是我有一个列出项目的模板,另一个用于消息,另一个最后在其自己的页面上显示该项目。这就是我到目前为止所做的:

  

的客户机/ helpers.js

// if we used items as a example, make its so the item template can see the specific item.
Template.items.helpers({
  items: function() {
    return Items.find();
  },
});

Template.registerHelper("usernameFromId", function (userId) {
  var user = Meteor.users.findOne({_id: userId});
  return user.profile.name;
});
  

的客户机/ subscriptions.js

Meteor.subscribe('allUsernames');
  

服务器/ publications.js

Meteor.publish("allUsernames", function () {
  return Meteor.users.find({}, 
    { fields: { 'profile.name': 1 }
  });
});
  

的客户机/模板/ item.html

<template name="item">
 {{usernameFromId user}}
</template>

这没什么,我在哪里出错?

  

更新

还没有变化,因为我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

代码实际上是正确的。为了使全球帮助者我不得不改变:

var user = Meteor.users.findOne({_id: userId});

var user = Meteor.users.findOne({_id: this.userId});

所以完整的功能是:

Template.registerHelper("usernameFromId", function (userId) {
  var user = Meteor.users.findOne({_id: this.userId});
  return user.profile.name;
});

感谢评论员!