Meteor:获取循环模板的级别信息

时间:2016-03-08 10:49:11

标签: javascript meteor

我使用'循环' -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

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前添加../

前缀