6

私は Meteor 0.5.2 を使用していますが、解決しようとしているのは、簡単な解決策があるはずの明らかなパターンです。

テンプレート インスタンスごとに異なるデータのチャンクを返す必要があるテンプレートがあります。

たとえば、テレビ番組を示すテンプレートがあります-ショーごとに。

次に、データが異なる同じテンプレートの 2 つのインスタンスを表示する必要があります。1 つは過去の番組、もう 1 つは今後の番組です。

だから私はテレビ番組のテンプレートを持っています:

<template name="tv_program">
   {{#each shows}}
   ...
</template>

理想的には、次のようなことをしたいと思います:

{{> tv_program past_shows}}
...
{{> tv_program upcoming_shows}}

JavaScript から読み取って mongo クエリを調整できる tv_program テンプレート インスタンスにパラメータを渡します。

現在、テンプレート/js コードをコピーして貼り付け、mongo クエリを調整しましたが、もっと良い方法が必要です。

引数付きのパーシャル/ヘルパーを調べましたが、それは私の問題の解決策ではないようです。

ありがとう、ウラジミール

4

2 に答える 2

6

あなたは間違ったレベルで問題に取り組んでいます。テンプレートから何をするかをコードに伝えようとするのではなく、コードから何をするかをテンプレートに伝える必要があります。例えば:

Template.past_shows.shows = function() { return shows(-1); }

Template.upcoming_shows.shows = function() { return shows(1); }

function shows(order) {
  return Shows.find({}, {$sort: order});
}

<template name="past_shows">
  {{#each shows}}
    {{> show}}
  {{/each}}
</template>

<template name="upcoming_shows">
  {{#each shows}}
    {{> show}}
  {{/each}}
</template>

<template name="show">
  <li>{{_id}}: {{name}}</li>
</template>
于 2013-01-06T19:05:24.190 に答える
0

アプリにmeteor-routerなどのステート マシンを使用している場合は、1 つのテンプレートを使用して、アプリの状態に応じて今後のショーまたは過去のショーを入力できます。

于 2013-01-08T04:25:37.547 に答える