【发布时间】:2014-12-28 18:02:37
【问题描述】:
这是 Meteor 应用程序中菜单的简化工作模板:
<template name="menus">
{{#each menus}}
{{> menu}}
{{/each}}
</template>
Template.menus.helpers({
menus: function () {
return menus.find();
}
});
<template name="menu">
{{title}}
{{#each menu_items}}
{{> menu_item}}
{{/each}}
</div>
</template>
Template.menu.helpers({
menu_items: function () {
return menu_items.find({
menuId: this._id
});
}
});
<template name="menu_item">
<div class="b-menu-item">
<a class="b-menu-item-link" href="{{link}}">{{title}}</a>
</div>
</template>
现在我需要添加menu_level模板来实现无限子菜单项渲染:
<template name="menus">
{{#each menus}}
{{> menu}}
{{/each}}
</template>
Template.menus.helpers({
menus: function () {
return menus.find();
}
});
<template name="menu">
{{title}}
{{#if menu_items}}
{{> menu_level}}
{{/if}}
</div>
</template>
<template name="menu_level">
<div class="b-menu-level">
{{#each menu_items}}
{{> menu_item}}
{{/each}}
</div>
</template>
Template.menu_level.helpers({
menu_items: function () {
return menu_items.find({
menuId: this._id
});
}
});
<template name="menu_item">
<div class="b-menu-item">
<a class="b-menu-item-link" href="{{link}}">{{title}}</a>
{{#if menu_items}}
{{> menu_level}}
{{/if}}
</div>
</template>
Template.menu_item.helpers({
menu_items: function () {
return menu_items.find({
menuItemId: this._id
});
}
});
但是,我无法通过此帮助程序获取菜单项:
Template.menu_level.helpers({
menu_items: function () {
return menu_items.find({
menuId: this._id
});
}
});
如何强制this._id 与menu <- menu_level 关联,而不仅仅是没有_id 的menu_level?
【问题讨论】:
标签: meteor meteor-helper