我在我的应用中使用FlowRouter
,在Meteor中使用新手。我订阅了我的收藏:
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中执行此操作。
答案 0 :(得分:3)
首先不要在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);
});
});
答案 1 :(得分:1)
如果是您的出版物名称,您可以在订阅期间使用onReady。
UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert"
message:@"This is an alert."
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
控制台日志只是一个例子。