sql >> Database >  >> NoSQL >> MongoDB

Meteor:Tracker.autorun / observeChanges &collections werken niet zoals verwacht

Het lijkt erop dat je het probleem begrijpt, laten we nu naar enkele mogelijke oplossingen gaan.

Meteor versie 1.1

Als u de nieuwe meteoor versie 1.1 gebruikt (u kunt controleren of meteor --version draait) )

gebruik dit.

Eerst op de onCreated functie gebruik dit.

Template.progressBar.onCreated(function () {
  var self = this;

  self.autorun(function () {
    self.subscribe("Progress");
  });
});

Meer informatie over subscriptionReady op de DOCS.Nu op de HTML zo gebruiken.

<template name="progress">
  {{#if Template.subscriptionsReady}}
      <div id="progress-bar" style="width:{{curValue}}; background-color:*dynamicColor*;"></div>
    {{else}}
       {{> spinner}} <!-- or whatever you have to put on the loading -->
   {{/if}}
</template>

Meteoor onder 1.0.4

U kunt op de router iets hebben als een waitOn:function(){}

waitOn:function(){
  Meteor.subscribe("Progress");
}

of aangezien helpers asynchroon zijn, doe iets als dit (niet aan te raden).

Template.progressBar.helpers({
  curValue: function () {
    query = Progress.findOne({user: Meteor.userId()}).curValue;
    if(query != undefined){
      return query;
    }else{
     console.log("collection isn't ready")
    }
  }
});



  1. Gebruik $stdDevSamp of $stdDevPop met Spring Mongo

  2. pymongo:naam 'ISODate' is niet gedefinieerd

  3. Hoe vind je op id met behulp van het MongoDB Node-stuurprogramma?

  4. Retourneert module.require(...).* een kopie van module.export.* of een referentie ervan?