2

こんにちは、次のテンプレートがあります。

<template name="users">
<ul id="item-list">  
   {{#each trackedUser}}
    <li id="{{_id}}"> 
        <span class="name">{{mUsername}}</span>
        <p><span class="description">{{mDescription}}</span></p>  
    </li>  
    {{/each}}
</ul>
</template>

このヘルパーで:

Template.users.helpers({
  trackedUser: function() {
    var curs = TrackedUser.find();
    users = curs.fetch();
    return users;
  }
});

問題は、この場合、新しいユーザーごとに、すべてのユーザーが dom で評価されていることです。

このコードを記述して、新しいユーザーごとにのみ

<li id="{{_id}}"> 
            <span class="name">{{mUsername}}</span>
            <p><span class="description">{{mDescription}}</span></p>  
        </li>  

再描画されますか?

ありがとうございました

4

1 に答える 1

5

の使用は避けてくださいfetch。使用fetch()すると、ハンドルバーにカーソルを渡さないため、変更された部分だけを再レンダリングできません。

Template.users.helpers({
  trackedUser: function() {
    var curs = TrackedUser.find();
    return curs;
  }
});

テンプレートの他の場所 (ループ内ではない) の場合は、コンテンツをブロックでラップするReactivity Isolationを使用することもできます。{{#isolate}}..{{/isolate}

于 2013-07-07T08:37:43.290 に答える