我正在使用Meteor / AngularJs应用程序(流星版本1.6和angular版本1.6),其中有两个集合,第一个集合为“ userWork”,第二个集合为“ images”。对于图像,我正在使用collectionFS软件包和gridFS存储适配器。我正在将userWork参考(即WOUID)传递到图像集合中,如下面的代码所示。我需要使用它来处理离线和在线图像。
cfs.images.filerecord集合代码
from collections import defaultdict
d = defaultdict(list)
for key,value in [('a', 5), ('b', 2), ('a', 4), ('b', 6)]:
d[key].append(value)
mean = []
for k,values in d.items():
# mean.append((k,sum(values)/float(len(values)))) #python 2
mean.append((k,sum(values)/len(values)))
print(mean) # [('a', 4.5), ('b', 4.0)]
userWork集合代码
{
"_id" : "",
"original" : {},
"WOUID" : "dfIFS",
"uploadedAt" : ISODate(""),
"copies" : {
"original" : {},
"thumbnail" : {}
}
}
在客户端要列出用户作品,我正在根据WOUID从userWork集合中获取文档列表以及从图像集合中获取各个作品的图像。我正在调用一个函数来列出每个用户作品的图像。我正在使用下面的代码来显示列表中每个作品的图像。
client / modules / userwork / views / worklist.html
{
"_id" : ObjectId(""),
"woNum" : NumberInt(1234),
"createdOn" : ISODate(""),
"WOUID" : "dfIFS",
"userID" : ""
}
getImgSrc函数的代码是
client / modules / userwork / controllers / userWorkCtrl.js
<ion-list>
<ion-item ng-repeat="ord in orders track by ord._id" >
<img ng-src="{{getImgSrc(ord)}}">
</ion-item>
</ion-list>
有时在工作清单,个人工作和仪表板之间切换屏幕时,我会得到不一致的图像,有时没有图像显示,我们不得不等待很长时间。
我认为问题可能是由于客户端getImgSrc函数中的Images.find()查询所致(如上所述)。
我很乐意以其他替代方式工作,而不是使用collectionFS解决我的图片问题,但是它应该是可响应的,以便它可以在联机和脱机状态下工作。
感谢您的努力和帮助。