如何使 returns 用户个人资料名称成为全局助手?
How to make global helper that returns users profile name?
如何制作 returns 用户个人资料名称的注册助手?
我想制作一个全局模板助手,用于在视图中显示用户个人资料名称。因此,用例是我有一个列出项目的模板,另一个用于消息,另一个最后在其自己的页面上显示该项目。这是我目前所拥有的:
client/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;
});
client/subscriptions.js
Meteor.subscribe('allUsernames');
server/publications.js
Meteor.publish("allUsernames", function () {
return Meteor.users.find({},
{ fields: { 'profile.name': 1 }
});
});
client/templates/item.html
<template name="item">
{{usernameFromId user}}
</template>
这没有任何作用,我哪里错了?
UPDATE
还没有改变,因为我不确定要做什么。
代码实际上是正确的。为了制作全局助手,我必须更改:
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;
});
感谢评论员!
如何制作 returns 用户个人资料名称的注册助手?
我想制作一个全局模板助手,用于在视图中显示用户个人资料名称。因此,用例是我有一个列出项目的模板,另一个用于消息,另一个最后在其自己的页面上显示该项目。这是我目前所拥有的:
client/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;
});
client/subscriptions.js
Meteor.subscribe('allUsernames');
server/publications.js
Meteor.publish("allUsernames", function () {
return Meteor.users.find({},
{ fields: { 'profile.name': 1 }
});
});
client/templates/item.html
<template name="item">
{{usernameFromId user}}
</template>
这没有任何作用,我哪里错了?
UPDATE
还没有改变,因为我不确定要做什么。
代码实际上是正确的。为了制作全局助手,我必须更改:
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;
});
感谢评论员!