data
をテンプレートに返す前に、特定のルートをロードするサブスクリプションを待つことに本当に苦労しています。私は、文書が見つかったことをサーバー上の公開から見ることができますが、クライアントには文書はありません。Meteor Iron Router WaitOnサブスクリプション
パブリッシュ時にfind()。count()を実行すると、1つのドキュメントが見つかったことを示していますが、サブスクリプションでカウントすると0個のドキュメントが表示されます。
サブスクリプションを使用するなど、さまざまな方法を試しました。waitOn:function()ではなくfunction()ですが、何も機能しません。
Collections.js libに:
SinglePackage = new Mongo.Collection("SinglePackage");
SinglePackage.allow({
insert: function(){
return true;
},
update: function(){
return true;
},
remove: function(){
return true;
}
});
Publications.jsサーバー:
Meteor.publish("SinglePackage", function(pack_id) {
return Packages.find({shortId: pack_id});
});
アイアンルータ:
Router.route('/package/:id', {
name: 'package.show',
template: 'Package_page',
layoutTemplate: 'Landing_layout',
waitOn: function() {
return Meteor.subscribe('SinglePackage', this.params.id);
},
data: function() {
return SinglePackage.find();
},
action: function() {
if (this.ready()) {
this.render();
} else {
this.render('Loading');
}
}
});
は、私は非常に間違って何かをやっている、またはこれだけです達成するために複雑なもの? waitOnは、サブスクリプションが準備完了するまで関数の残りの部分を待機させると考えられます。
ご協力いただければ幸いです。
ヘルプJeremiahに感謝します。私はこれを試しましたが、うーん、それはまだ動作していません。テンプレートレベルでカウントすると、結果は0に戻ります – PsydeStep
ワークフローのどの時点でカウントしていますか? onCreated、onRendered、helper? – Jeremiah
ヘルパー..それは間違った場所ですか?本当に奇妙なことですが、私はサブスクリプションではなく、公開している文書を見ることができます – PsydeStep