sql >> Databasteknik >  >> NoSQL >> MongoDB

Meteor:Tracker.autorun / observeChanges &samlingar fungerar inte som förväntat

Det verkar som om du förstår problemet, låt oss nu gå vidare till några möjliga lösningar.

Meteor version 1.1

Om du använder den nya meteor version 1.1 (du kan kontrollera att meteor --version körs )

använd detta.

Först på onCreated funktion använd denna.

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

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

Se mer om prenumerationReady på DOCS.Nu på HTML använd så här.

<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 ha något i stil med en waitOn:function(){} på routern

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

eller eftersom hjälpare är asynkrona gör något sånt här (rekommenderas inte).

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. Hur kommer du åt attribut för ett objekt som frågas från Mongo i Meteor

  2. Extrahera två undermatrisvärden i mongodb med $elemMatch

  3. Hur lägger man till en json i en kapslad array av ett mongodb-dokument med Spring?

  4. hur kör man mongodb inbyggd fråga med mongodb date funktion i spring-data-mongodb?