每个人都可以浏览配置文件并且它工作得很好,除了我需要动态更改每张卡显示的个人资料图片的src链接。当我需要的信息出现在另一个集合中时,我不知道该怎么做。
图片集:
{
"_id" : "LT6aCTFkbRn6AAKBg",
"size" : 1467914,
"type" : "image/jpeg",
"name" : "profil.jpg",
"meta" : {},
"ext" : "jpg",
"extension" : "jpg",
"extensionWithDot" : ".jpg",
"mime" : "image/jpeg",
"mime-type" : "image/jpeg",
"userId" : "3JAt887HkSooRRPk2",
"path" : "assets\\app\\uploads\\images\\LT6aCTFkbRn6AAKBg.jpg",
"versions" : {
"original" : {
"path" : "assets\\app\\uploads\\images\\LT6aCTFkbRn6AAKBg.jpg",
"size" : 1467914,
"type" : "image/jpeg",
"extension" : "jpg"
}
},
"_downloadRoute" : "/cdn/storage",
"_collectionName" : "images",
"isVideo" : false,
"isAudio" : false,
"isImage" : true,
"isText" : false,
"isJSON" : false,
"isPDF" : false,
"_storagePath" : "assets\\app\\uploads\\images",
"public" : false
}
_id(LT6aCTFkbRn6AAKBg)不是userId。
Template.profileDetails.helpers({
user: function() {
return Meteor.users.find();
},
PSEUDO:
imageLinkForThisUser: function() {
return Images.find('document in collection which has same userId key in it and return path');
},
谢谢!
答案 0 :(得分:1)
Meteor.userId()
将返回用户的当前_id
。
所以你的mongo查询应该是:
Images.findOne({userId: Meteor.userId()})['path'];
您可以使用findOne而不是find(我假设)每个用户只存储一个图像。
您的帮助功能将是:
Template.profileDetails.helpers({
...
imageLinkForThisUser: function() {
return Images.findOne({userId: Meteor.userId()})['path'];
},
...
});
<强> HTML:强>
<img src={{imageLinkForThisUser}} />
提示:您无需拥有返回用户ID /用户数据的帮助程序。您可以直接使用把手来检索它。
Eg. {{currentUser.username}}
this回答中的更多内容