fun*_*eah 13 templates publish-subscribe meteor
Meteor最近推出了模板订阅功能.您现在可以this.subscribe在Temeplate.xyz.onCreated调用中进行调用,只有订阅从服务器准备好后,帮助程序{{#if Template.subscriptionsReady}}才会成立.
不幸的是,这似乎与subs-manager或subs-Cache明显不兼容
你是如何使用sub-Cache替代this.subscribe的,以便subsciptions manager制作的订阅ID将它变成_subscriptionHandles和_allSubsReady这个.subscribe的一部分?或者以其他方式询问,您如何获得{{#if Template.subscriptionsReady}}和函数Template.instance().subscriptionsReady()依赖于使用subs-Cache进行的模板订阅.
示例代码不起作用:
# in some top level file
share.subsCache = new SubsCache(
expireAter: 5
cacheLimit: 10
)
#in a template file
Template.entryRevisionInfo.onCreated ->
share.subsCache.subscribe('somePub')
Run Code Online (Sandbox Code Playgroud)
Sacha Greif 在Telescope应用程序中编写了一个解决方案。我尝试提取对下面的基本实现重要的部分。据我了解,它依赖于显式设置模板的就绪状态...在订阅就绪时进行反应式设置:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |