Meteor: cómo activar reRun de la función auxiliar después de que collectionHandle.ready () es verdadero

Esta es una nueva versión de mi vieja.pregunta:

Así que gracias a la ayuda de Tom Coleman, finalmente descubrí cómo verificar correctamente si una suscripción está lista () o no.

Mi estructura de código actual se ve así:

/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'));
        });
});
// ...

Luego tengo una vista de archivos .js y .html específicos para todas las cosas de la plantilla en una carpeta llamada:

/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;
        } 
}

Este ayudantedataLoaded básicamente envuelve todo en la plantilla correspondiente y muestra el contenido cuandodataLoaded devuelve true o muestra un spinner de carga.

El problema es que en muchos casos esto no funciona porque este código dataLoaded solo se ejecuta una vez. Por lo tanto, si los dos controladores NO están listos () en el momento en que se ejecuta dataLoaded, el contenido NUNCA se mostrará. En este caso, todavía veo que todas las aplicaciones console.log provienen del archivo app.js (el archivo Deps.autorun ()) pero el registro "¡Todos los datos están cargados!" nunca es echod

Así que mi pregunta es: ¿Cómo puedo activar una repetición de este código paradataLoaded se ejecuta de nuevo para que el contenido finalmente aparezca?

atentamente

Respuestas a la pregunta(4)

Su respuesta a la pregunta