在流星中,如何等待订阅并在模板“渲染”函数中访问它们?
In meteor, how to wait for subscriptions and access them in template `rendered` function?
我在我的应用程序中使用 FlowRouter
并且是 Meteor 的新手。我已经像这样订阅了我的 collection :
Template.PanelEditAbout.onCreated(function() {
var self = this;
self.autorun(function() {
self.subscribe('pages', 'about');
});
});
我正在尝试在 rendered
函数中使用订阅,但它不起作用:
Template.PanelEditAbout.rendered = function() {
page = Pages.findOne({
slug: 'about'
});
}
如果我是对的,我必须等待订阅可用。我怎样才能做到这一点?我还需要在准备就绪时添加加载消息(或微调器)。我知道如何在 IronRouter 中执行此操作,但不知道如何使用 FlowRouter。
如果它是您的出版物名称,您可以在订阅页面期间使用 onReady。
Template.PanelEditAbout.rendered = function() {
Meteor.subscribe("page", Yourslug,{
onReady: function () { console.log("onReady And the Itemns actually Arrive", arguments); },
onError: function () { console.log("onError", arguments); }
});
};
控制台日志只是一个例子。
永远不要订阅 onRendered
,首先。尝试以下操作:
Template.PanelEditAbout.onCreated(function() {
this.subscribe('pages', 'about');
});
Template.PanelEditAbout.onRendered(function() {
let page = {};
this.autorun(() => {
if (this.subscriptionsReady()) {
console.log('subs ready');
page = Pages.findOne({
slug: 'about'
});
}
console.log(page);
});
});
我在我的应用程序中使用 FlowRouter
并且是 Meteor 的新手。我已经像这样订阅了我的 collection :
Template.PanelEditAbout.onCreated(function() {
var self = this;
self.autorun(function() {
self.subscribe('pages', 'about');
});
});
我正在尝试在 rendered
函数中使用订阅,但它不起作用:
Template.PanelEditAbout.rendered = function() {
page = Pages.findOne({
slug: 'about'
});
}
如果我是对的,我必须等待订阅可用。我怎样才能做到这一点?我还需要在准备就绪时添加加载消息(或微调器)。我知道如何在 IronRouter 中执行此操作,但不知道如何使用 FlowRouter。
如果它是您的出版物名称,您可以在订阅页面期间使用 onReady。
Template.PanelEditAbout.rendered = function() {
Meteor.subscribe("page", Yourslug,{
onReady: function () { console.log("onReady And the Itemns actually Arrive", arguments); },
onError: function () { console.log("onError", arguments); }
});
};
控制台日志只是一个例子。
永远不要订阅 onRendered
,首先。尝试以下操作:
Template.PanelEditAbout.onCreated(function() {
this.subscribe('pages', 'about');
});
Template.PanelEditAbout.onRendered(function() {
let page = {};
this.autorun(() => {
if (this.subscriptionsReady()) {
console.log('subs ready');
page = Pages.findOne({
slug: 'about'
});
}
console.log(page);
});
});