配置文件图像未显示在列表中

时间:2016-03-11 00:01:55

标签: meteor

我试图在用户列表中显示个人资料图片。该列表正确填充所有名称,但是我在显示配置文件图像时遇到问题。配置文件图像具有单独的集合,并且使用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>

1 个答案:

答案 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的结果。