2

私のHTMLコードは次のとおりです。

{{#each slides}}
   {{> slide}}
{{/each}}

私のjavascriptヘルパーは次のとおりです。

Template.draggables.slides = function() {
return LiveSlides.find();
};

私はステートメント、サブテンプレート、2 つの組み合わせ、およびさらに多くの順列を試し{{#isolate}}ました。{{#each}}すべての親テンプレートが再レンダリングされ、コレクション内のオブジェクトごとにレンダリングされます。したがって、Web ページの最初の読み込み時に、コレクションに 10 個のオブジェクトがある場合、すべての親テンプレートがレンダリングされます。私はそれをすべて記録しています。通常のセッション変数ではこのように動作しないと確信しています-コレクションがおかしいと思います。誰が問題が何であるかを知っていますか?

更新 -- テスト用に新しい空のアプリを作成しましたが、まだ親テンプレートを再レンダリングしています -- アプリに含まれるすべてのものを次に示します。

 <body>
  {{> parent}}
</body>

<template name="parent">
    {{>child}}
</template>

<template name="child">
    {{#each desks}}
        <li>{{name}}</li>
    {{/each}}
</template>


Template.parent.rendered = function() {
    console.log('parent rendered');
};

Template.child.desks = function() {
    return Desks.find();
};
4

1 に答える 1

1

ここで起こっているのは、レンダリングされた子ごとに親の「レンダリングされた」コールバックが呼び出されていることだと思います。したがって、親は実際には DOM に戻されません。そのレンダリングされたコールバックは、子によって起動されています。あなたが達成しようとしている特定のユースケースがある場合は、私に知らせてください.いくつかの提案で私の答えを拡張しようとします.

于 2013-02-27T23:17:00.657 に答える