2015-04-17 11 views
13

Meteor ha recentemente introdotto funzionalità di sottoscrizione template. È ora possibile chiamare this.subscribe da una chiamata Temeplate.xyz.onCreated e l'helper {{#if Template.subscriptionsReady}} sarà vero solo una volta che le sottoscrizioni sono state preparate dal server.come utilizzeresti i gestori di sottoscrizioni con le sottoscrizioni di modelli di meteora?

Purtroppo questo non sembra essere ovviamente compatibile con subs-manager o subs-Cache

Come merion si utilizza sub-Cache sul posto di this.subscribe tale che gli ID di sottoscrizione eseguiti dal responsabile subsciptions rendono in _subscriptionHandles e _allSubsReady parte di questo.subscribe? In caso contrario, come si ottiene {{#if Template.subscriptionsReady}} e la funzione Template.instance(). SubscriptionsReady() dipende dalle sottoscrizioni del modello create con subs-Cache.

codice

Esempio che non funziona: "connessione"

# in some top level file 
share.subsCache = new SubsCache( 
    expireAter: 5 
    cacheLimit: 10 
) 

#in a template file 
Template.entryRevisionInfo.onCreated -> 
    share.subsCache.subscribe('somePub') 
+0

Hai trovato una soluzione a questo? – chasemb

+0

no scusa non l'ho fatto, aggiungerò una taglia per vedere se ciò avvantaggia tutto – funkyeah

risposta

1

Sacha Greif ha scritto una soluzione nell'app Telescope. Ho cercato di estrarre le parti che sono significative per un'implementazione di base di seguito. Per quanto ho capito si basa sull'impostazione esplicitamente lo stato pronto del modello ... impostazione reattivo quando l'abbonamento è pronto:

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

Puoi anche fare riferimento a https://www.discovermeteor.com/blog/template-level-subscriptions/ – Sacha

3

La next (unreleased) version di meteoriti ha un'opzione per connectionTemplateInstance#subscribe, e mi aspetto che si sarebbe in grado di passare un manager di sottoscrizione come

Problemi correlati