Я работаю над приложением Meteor / AngularJs (версия метеора 1.6 и угловая версия 1.6), где у меня есть две коллекции: первая коллекция - userWork, а вторая коллекция - изображения. Для изображений я использую пакет collectionFS и адаптер хранения gridFS. Я передаю ссылку на пользовательскую работу (т. Е. WOUID) в коллекцию изображений, как показано в приведенном ниже коде. Мне нужно, чтобы это работало как для автономных, так и для сетевых изображений.
код коллекции cfs.images.filerecord
{
"_id" : "",
"original" : {},
"WOUID" : "dfIFS",
"uploadedAt" : ISODate(""),
"copies" : {
"original" : {},
"thumbnail" : {}
}
}
код коллекции userWork
{
"_id" : ObjectId(""),
"woNum" : NumberInt(1234),
"createdOn" : ISODate(""),
"WOUID" : "dfIFS",
"userID" : ""
}
На стороне клиента для составления списка пользовательских работ я получаю список документов из коллекции userWork и изображения соответствующих работ из коллекции изображений в соответствии с WOUID. Я вызываю функцию, чтобы перечислить изображения каждого пользователя работы. Я использую код ниже, чтобы показать изображение для каждой работы в списке.
клиент / модули / userwork / просмотров / worklist.html
<ion-list>
<ion-item ng-repeat="ord in orders track by ord._id" >
<img ng-src="{{getImgSrc(ord)}}">
</ion-item>
</ion-list>
код функции getImgSrc:
клиент / модули / userwork / контроллеры / userWorkCtrl.js
$scope.getImgSrc = function(wo){
var fetchWOImages = Images.findOne(
{
"$and":[
{
WOUID:{$exists:true}
}
,{
WOUID:wo.WOUID
}
]
}
);
return $rootScope.serverUrl+"/cfs/files/images/"+fetchWOImages.getFileRecord()._id+"?store=thumbnail";
};
Иногда я получаю противоречивые изображения при смене экранов между рабочим списком, отдельной работой и приборной панелью, а иногда изображения не отображаются, чего нам приходится долго ждать.
Я думаю, что проблема может быть связана с запросом Images.find () в функции getImgSrc на стороне клиента (как указано выше).
Я буду рад работать с любыми другими альтернативными способами вместо использования collectionFS для решения проблемы с изображениями, но он должен быть реактивным, чтобы он мог работать как в сети, так и в автономном режиме.
Спасибо за ваши усилия и помощь.