Javascript Meteor:获取循环模板的级别信息
我使用一个“循环”模板来显示元素及其子元素。因此,如果结构为三层深,则loopIt模板将使用三次Javascript Meteor:获取循环模板的级别信息,javascript,meteor,Javascript,Meteor,我使用一个“循环”模板来显示元素及其子元素。因此,如果结构为三层深,则loopIt模板将使用三次 <template name="main"> {{ < loopIt }} </template> <template name="loopIt"> {{#each elements}} {{title}} {{level}} {{ > loopIt }} {{/each}} </temp
<template name="main">
{{ < loopIt }}
</template>
<template name="loopIt">
{{#each elements}}
{{title}} {{level}}
{{ > loopIt }}
{{/each}}
</template>
你能试试这个吗
首先,定义一个帮助器,在递归深入时增加级别
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>
{{loopIt level=(add../level)}
{{/每个}}
请注意,在
每个
循环中,都会丢失父上下文。为了再次访问父上下文,必须在变量级别
前面加上。/
您的数据模型上没有级别吗?与Blaze或“自定义脏把戏”相比,从您的数据中处理它更容易。我使用的是带有父引用的模型树结构。所以我没有等级信息。仅引用每个元素的下一个父元素:-(是否生成树?如果是,我将在构建每个节点时添加级别信息)。
<template name="main">
{{ < loopIt level = 0}}
</template>
<template name="loopIt">
{{#each elements}}
{{title}} {{../level}}
{{ > loopIt level = (add ../level)}}
{{/each}}
</template>