Meteor: Como disparar reRun da função auxiliar depois que collectionHandle.ready () é true
Esta é uma nova versão do meu antigoquestão:
Então, graças à ajuda de Tom Coleman, finalmente descobri como verificar corretamente se uma assinatura está pronta () ou não.
Minha estrutura de código atual se parece com isso:
/client/app.js:
eventsHandle = null;
groupsHandle = null;
// ...
// First Deps.autorun():
// Does not depend on any Session var, should just run every time
Deps.autorun(function() {
eventsHandle = Meteor.subscribe("events", function() {
console.log('Deps.autorun(): Events loaded');
});
});
// Second Deps.autorun():
// contains all subscriptions which are dependent on my Session var "ehash"
Deps.autorun(function() {
if(Session.get('ehash'))
groupsHandle = Meteor.subscribe("groups", Session.get('ehash'), function() {
console.log('Deps.autorun(): Groups loaded with ehash: ' + Session.get('ehash'));
});
});
// ...
Então, eu vejo arquivos específicos de .js e .html para todo o material do template em uma pasta chamada:
/client/views/
--> <page>.js:
Template.x.dataLoaded = function() {
if(Session.get('ehash'))
if(eventsHandle && groupsHandle && eventsHandle.ready() && groupsHandle.ready()) {
console.log('All data loaded!');
singleevent = Events.find({ehash: Session.get('ehash')}).fetch()[0];
return true;
}
}
Esse ajudantedataLoaded
envolve basicamente tudo no modelo correspondente e mostra o conteúdo quandodataLoaded
retorna true ou mostra um spinner de carregamento.
O problema é que, em muitos casos, isso não funciona porque esse código dataLoaded é executado apenas uma vez. Portanto, se as duas alças não estiverem prontas () no momento em que dataLoaded for executado, o conteúdo NUNCA aparecerá. Nesse caso, ainda vejo todos os arquivos do console.log provenientes do arquivo app.js (o material Deps.autorun ()), mas o log "Todos os dados carregados!" nunca é echod.
Então, minha pergunta é: como faço para acionar uma nova execução desse códigodataLoaded
é executado novamente para que o conteúdo seja exibido?
Cumprimentos