我在mongo中有一个树结构,每个节点都有其父节点的id。像这样:
{ "_id" : 1 }
{ "_id" : 2, "parent" : 1 }
通过使用这些模板递归渲染每个节点来渲染整个树:
<template name="thing">
<div class="project open {{status}}" data-id="{{_id}}" id="thing_{{_id}}">
<div class="name">{{name}}</div>
<div class="children" id="children_{{_id}}">
{{> childrenThings }}
</div>
</div>
</template>
<template id="childrenThings" name="childrenThings">
{{#each children}}
{{> thing}}
{{/each}}
</template>
模板“thing”调用模板“childrenThings”再次调用模板“thing”,依此类推,直到重新渲染所有节点。
现在,当我更改嵌套项时,我看到所有节点直到其根父级被重新渲染。我应该如何设置模板,以便只重新呈现当前模板,而不是所有父节点,直到根目录?
谢谢:)
答案 0 :(得分:0)
当子模板重新渲染时,它们会触发父渲染的回调。因此,这并不意味着您的整个父树实际上已从DOM中删除并重新开启。它只是意味着已经渲染了模板范围内的某些 DOM节点。这有点令人困惑。如果你注意到闪烁或其他一些奇怪的行为,那就不同了。但是你的代码看起来还不错。