Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 您如何将订阅管理器与meteor';s模板订阅?_Templates_Meteor_Publish Subscribe - Fatal编程技术网

Templates 您如何将订阅管理器与meteor';s模板订阅?

Templates 您如何将订阅管理器与meteor';s模板订阅?,templates,meteor,publish-subscribe,Templates,Meteor,Publish Subscribe,Meteor最近引入了模板订阅功能。现在,您可以在Temeplate.xyz.onCreated调用中调用this.subscribe,并且助手{{{if Template.subscriptionsReady}}仅在从服务器准备好订阅后才为真 不幸的是,这似乎与或不明显兼容 您如何使用subs缓存来代替此.subscribe,以便Subscriptions管理器生成的订阅ID将其放入此.subscribe的_subscriptionHandles和_allsubscribe部分?或者问,如何使

Meteor最近引入了模板订阅功能。现在,您可以在
Temeplate.xyz.onCreated
调用中调用
this.subscribe
,并且助手{{{if Template.subscriptionsReady}}仅在从服务器准备好订阅后才为真

不幸的是,这似乎与或不明显兼容

您如何使用subs缓存来代替此.subscribe,以便Subscriptions管理器生成的订阅ID将其放入此.subscribe的_subscriptionHandles和_allsubscribe部分?或者问,如何使{{#if Template.subscriptionsReady}和函数Template.instance().subscriptionsReady()依赖于使用subs缓存进行的模板订阅

不起作用的示例代码:

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

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

meteor的应用程序有一个连接到TemplateInstance订阅的选项,我希望你能够通过订阅管理器作为“连接”。

Sacha Greif在应用程序中编写了一个解决方案。我试图提取对下面的基本实现非常重要的部分。据我所知,它依赖于显式设置模板的就绪状态。。。订阅准备就绪时以反应方式设置它:

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

你找到解决这个问题的办法了吗?不,对不起,我没有,不过我会增加一笔赏金,看看这是否能给你带来什么好处