приложение angular-meteor онлайн и офлайн противоречивое изображение с использованием gridFS - PullRequest
0 голосов
/ 10 ноября 2018

Я работаю над приложением 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 для решения проблемы с изображениями, но он должен быть реактивным, чтобы он мог работать как в сети, так и в автономном режиме.

Спасибо за ваши усилия и помощь.

...