The approach you can take is to subscribe to the template functions created, then when rendering the template, first check each subscription ready(), and if they are not all correct, then visualize the loading display.
<template name="templateWithSubscription">
{{#if ready}}
{{else}}
loading...
{{/if}}
</template>
Template.templateWithSubscription.created = function () {
this.subscriptions = [
Meteor.subscribe(),
Meteor.subscribe(),
];
};
Template.templateWithSubscription.destroyed = function () {
_.each(this.subscriptions, function (sub) {
sub.stop();
});
};
Template.templateWithSubscription.helpers({
ready: function () {
return _.all(Template.instance().subscriptions, function (sub) {
return sub.ready();
});
}
});
(, ).