您好我有以下模板:
<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>
是否已重新绘制?
谢谢
答案 0 :(得分:5)
避免使用fetch
。当您使用fetch()
时,您不会将光标传递给把手,因此它不能仅重新渲染已更改的部分。
Template.users.helpers({
trackedUser: function() {
var curs = TrackedUser.find();
return curs;
}
});
对于模板中任何其他位置(不在循环中)的情况,您还可以使用Reactivity Isolation将{{#isolate}}..{{/isolate}
块中的内容包装起来。