Skip to content Skip to sidebar Skip to footer

Meteor: Tracker.autorun / Observechanges & Collections Not Working As Expected

I am new to using meteor, so I am hoping to receive a very basic explanation of how these functions work, and how I am supposed to be using them. Otherwise, if there is a method th

Solution 1:

that means that I am trying to access this document before the collection has loaded

Seems like you get the problem, now lets get ride to some possible solutions.

Meteor version 1.1

If you are using the new meteor version 1.1 (you can check running meteor --version)

use this.

First on the onCreated function use this.

Template.progressBar.onCreated(function () {
  varself = this;

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

See more about subscriptionReady on the DOCS. Now on the HTML use like this.

<templatename="progress">
  {{#if Template.subscriptionsReady}}
      <divid="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

You can have on the router something like a waitOn:function(){}

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

or since helper are asynchronous do something like this (not recommendable).

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

Post a Comment for "Meteor: Tracker.autorun / Observechanges & Collections Not Working As Expected"