tutorial started react learn insecure guide español templates meteor publish-subscribe

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