0

アプリでを使用しています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 では知りません。

4

2 に答える 2

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);
  });
});
于 2015-11-17T07:31:54.067 に答える
1

それがパブリケーションの名前である場合、ページへの購読中に 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); }
  });
};

コンソール ログは単なる例です。

于 2015-11-17T06:33:23.697 に答える