1

JS ファイルの先頭にあるサブスクリプション コード "Meteor.subscribe('my-publications')" が、JS ファイルが作成されたテンプレートだけでなく、すべてのテンプレートに影響することに気付きました。

すべてのデモがこのようにしていたので、これは予想外でした。

1 つのテンプレートのみに影響を与えたい場合、サブスクリプション コードはどこにあると思われますか? Template.name.created() 内?

4

1 に答える 1

0

minimongo の唯一のデータがテンプレートに関連するものであると想定しないでください。テンプレートのデータを選択するときは、具体的にしてください。

サブスクリプションに関する限り、いくつかのオプションがあります。最も一般的なwaitOnのは、ルート定義のセクションにサブスクリプションを追加することです。を使用waitOnすると、ルートが使用されなくなったときにサブスクリプションがアンサブスクライブされます。

Router.map(function() { 
  this.route('route', {
    waitOn: function(){ return Meteor.subscribe("yourSub"; }
  });
});

テンプレートごとにサブスクライブすることもできます。この目的のために作成したパッケージは、次の方法で追加できます

meteor add elevatedevdesign:template-subscriptions

このパターンも blaze の一部として間もなく登場しますが、呼び方に若干の違いがあります。これにより、テンプレートがアクティブでなくなると、自動的に購読が解除されます。また、テンプレートの破棄時に subs-manager を購読することもできます。

于 2015-02-03T03:19:21.523 に答える