templates - started - ¿cómo usaría los administradores de suscripción con las suscripciones de plantilla de meteoritos?
meteor react (2)
La siguiente versión (inédita) de meteor tiene una opción de connection
a TemplateInstance#subscribe
, y yo esperaría que usted pueda pasar un gestor de suscripción como la "conexión".
Meteor introdujo recientemente capacidades de suscripción de plantilla. Ahora puede llamar a this.subscribe
desde una llamada Temeplate.xyz.onCreated
y el asistente {{#if Template.subscriptionsReady}} solo será verdadero una vez que las suscripciones estén listas desde el servidor.
Lamentablemente, esto no parece ser obviamente compatible con subserge Manager o subs-Cache
¿Cómo utilizará subs-Cache en lugar de esto? Suscríbase de tal manera que las identificaciones de suscripción hechas por el administrador de subscripciones lo hagan en _subscriptionHandles y _allSubsReady parte de esto. Suscribirse? O bien, se pregunta cómo se obtiene {{#if Template.subscriptionsReady}} y la función Template.instance (). SubscriptionsReady () para que dependa de las suscripciones a las plantillas hechas con subs-Cache.
Código de ejemplo que no funciona:
# in some top level file
share.subsCache = new SubsCache(
expireAter: 5
cacheLimit: 10
)
#in a template file
Template.entryRevisionInfo.onCreated ->
share.subsCache.subscribe(''somePub'')
Sacha Greif escribió una solución en la aplicación Telescope . Intenté extraer las partes que son importantes para una implementación básica a continuación. Por lo que yo entiendo, se basa en establecer explícitamente el estado de listo de la plantilla ... configurándola de manera reactiva cuando la suscripción está lista:
subsManager = new SubsManager();
Template.templatename.onCreated(function () {
var instance = this;
instance.ready = new ReactiveVar(false);
subscription = subsManager.subscribe(''yourCollection'')
instance.autorun(function () {
if (subscription.ready()) { //reactive
instance.ready.set(true);
}
}
}