MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Meteor:Tracker.autorun/obserwujZmiany i kolekcje nie działają zgodnie z oczekiwaniami

Wygląda na to, że masz problem, teraz przejdźmy do kilku możliwych rozwiązań.

Meteor w wersji 1.1

Jeśli używasz nowej wersji 1.1 meteor (możesz sprawdzić działanie meteor --version )

użyj tego.

Najpierw na onCreated użyj tej funkcji.

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

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

Zobacz więcej o subskrypcjaGotowa w DOCS.Teraz w HTML użyj w ten sposób.

<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 w wersji 1.0.4

Możesz mieć na routerze coś w rodzaju waitOn:function(){}

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

lub ponieważ helpery są asynchroniczne, zrób coś takiego (niezalecane).

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Aktualizacja słownika w Mongodb

  2. Używanie deklaracji nie znalezionej w sterowniku mongodb c++

  3. Ograniczone problemy z wydajnością kolekcji

  4. MongoDB PHP:Jak uzyskać ObjectId za pomocą kanału JSON? (jest puste)

  5. Jak wybrać dane z podanym warunkiem