使用gridFS的角度流星应用在线和离线图像不一致

时间:2018-11-10 10:43:55

标签: mongodb meteor gridfs angular-meteor collectionfs

我正在使用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解决我的图片问题,但是它应该是可响应的,以便它可以在联机和脱机状态下工作。

感谢您的努力和帮助。

0 个答案:

没有答案