我使用'循环' -template来显示元素及其子元素。因此,如果结构深度为三级,则loopIt-template使用三次。
<template name="main">
{{ < loopIt }}
</template>
<template name="loopIt">
{{#each elements}}
{{title}} {{level}}
{{ > loopIt }}
{{/each}}
</template>
是否有可能获得元素在哪个级别的信息并将其输出为{{level}}
?
结果应如下所示:
first element 1
first subelement 2
second subelement 2
first subsubelement 3
third subelement 2
second element 1
答案 0 :(得分:1)
你能试试吗?
首先,定义一个帮助程序,以便在递归中更深入地递增级别
Template.loopIt.helpers({
add: function(level) {
return level + 1;
}
});
然后在模板中传递当前级别,并在递归的下一级别中使用定义的帮助程序递增它。
<template name="main">
{{ < loopIt level = 0}}
</template>
<template name="loopIt">
{{#each elements}}
{{title}} {{../level}}
{{ > loopIt level = (add ../level)}}
{{/each}}
</template>
请注意,在each
循环中,您将丢失父上下文。为了再次访问父上下文,必须在变量level
前添加../