sql >> Database teknologi >  >> NoSQL >> MongoDB

Meteor:Tracker.autorun / observeChanges &samlinger fungerer ikke som forventet

Det ser ud til, at du forstår problemet, lad os nu tage nogle mulige løsninger.

Meteor version 1.1

Hvis du bruger den nye meteor version 1.1 (du kan kontrollere, at meteor --version kører )

brug dette.

Først på onCreated funktion bruge denne.

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

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

Se mere om subscriptionReady på DOCS.Nu på HTML brug sådan her.

<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>

Meteor under 1.0.4

Du kan have noget som en waitOn:function(){} på routeren

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

eller da hjælpere er asynkrone, gør noget som dette (kan ikke anbefales).

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. Heroku prækompilerer ikke mine aktiver for at forberede min app til aktivpipeline

  2. Sådan vælger du den bedste MongoDB-hosting til din virksomhed

  3. MongoDB-opdatering med tilstand

  4. NodeJS - MongoClient.Forbind med URL til DB Other Than Default