在Meteor中组织我的订阅的最佳模式,没有发现数据未准备好的风险

mas*_*lli 4 subscriptions meteor iron-router

我在这里阅读了一些关于如何在Meteorjs中组织订阅的帖子,但我仍然不明白什么是最好的模式,以避免发现我订阅的一些数据尚未准备好在模板中使用.我使用Iron Router,现在我在Router.configure中使用waitOn选项组织了所有订阅.我发现这种方式有时无济于事.如果我有多个这样的订阅:

Router.configure({
    layoutTemplate: 'layout',
    loadingTemplate: 'loading',
    waitOn: function () {
        return [
            Meteor.subscribe('channels'),
            Meteor.subscribe('invitations'),
            Meteor.subscribe('messages')
        ];
    } 
});
Run Code Online (Sandbox Code Playgroud)

我明白这个命令很重要.如果我更改数组中订阅的顺序,程序的响应会有所不同.我想要的是在浏览应用程序之前,所有订阅都已完全加载.上一篇文章中的某个人谈到将它们放在一个单独的文件中来解决这个问题.但是怎么样?我需要在哪里放置该文件?对于我的案例,我将在此感谢一些例子.

Eth*_*aan 6

随着Meteor 1.0.4模板实例的发布,现在有一个与其完全相同的订阅方法Meteor.subscribe,请查看此发行说明以获取更多信息

因此,您可以在onCreated中使用该订阅,如下例所示.

Template.notifications.onCreated(function () {
  this.subscribe("channels");
  this.subscribe("invitations");
  this.subscribe("messages");
});
Run Code Online (Sandbox Code Playgroud)

检查流星文档有关subscriptionsReady()