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 回答