sql >> Databáze >  >> NoSQL >> MongoDB

Meteor:Tracker.autorun / pozorovatel Změny a kolekce nefungují podle očekávání

Zdá se, že jste pochopili problém, nyní se pojďme podívat na některá možná řešení.

Meteor verze 1.1

Pokud používáte nový meteor verze 1.1 (můžete zkontrolovat spuštění meteor --version )

použijte toto.

Nejprve na onCreated použijte tuto funkci.

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

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

Další informace o předplatné připraveno na DOCS.Now na HTML použijte takto.

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

Na routeru můžete mít něco jako waitOn:function(){}

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

nebo protože helper jsou asynchronní, udělejte něco takového (nedoporučujeme).

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. Mongoose:Jak aktualizovat existující prvek v poli?

  2. získat relevantní informace proti hodnotě objektu v MongoDB

  3. Nelze spustit sadu replik v Ubuntu

  4. Zahrnout konkrétní pole do indexu zástupných znaků v MongoDB