我试图在用户列表中显示个人资料图片。该列表正确填充所有名称,但是我在显示配置文件图像时遇到问题。配置文件图像具有单独的集合,并且使用slingshot
S3存储它们。该集合正在正确发布,因为我可以使用meteortoys:allthings
查看所有数据。我认为它是我的js文件或我是如何尝试在模板中访问它们的。如果您需要更多信息,请告诉我。
路径:userList.js
Template.userList.helpers({
userList: ()=> {
return Meteor.users.find({_id: { $ne: Meteor.userId() }});
},
profileImg: function(){
return Files.find({userId: this._id});
}
});
路径:userList.html
<template name="userList">
{{#each userList}}
{{#if profileImg url}}
<img src="{{url}}" alt="{{url}}" class="profileImg">
{{/if}}
{{profile.firstName}} {{profile.familyName}}
{{/each}}
</template>
答案 0 :(得分:1)
<强> userList.js 强>
Template.userList.helpers({
userList() {
return Meteor.users.find({ _id: { $ne: Meteor.userId() } });
},
profileImg() {
return Files.findOne({ userId: this._id });
},
});
<强> userList.html 强>
<template name="userList">
{{#each userList}}
{{#with profileImg}}
<img src="{{url}}" alt="{{url}}" class="profileImg">
{{/with}}
{{profile.firstName}} {{profile.familyName}}
{{/each}}
</template>
with
将更改img
的上下文,使其实际上具有url
属性。此处还需要在findOne
中返回profileImg
的结果。