我刚刚开始使用Meteor,我有点困惑;我不确定这是Meteor问题还是Handlebars问题。
我正在尝试创建一个嵌套菜单(一组可点击的div,每个div都切换一个由更多可点击的div组成的子菜单)。我希望默认情况下隐藏子菜单,但在用户单击其父级时显示。
这就是我所拥有的:
Template.sidebutton.events({
click : function() {
this.clicked = !this.clicked;
clickHandlers[this.label]();
}
})
和
<template name = "sidebutton">
<div class = "sidebutton" id = "sidebutton_{{label}}"><p>{{label}}</p></div>
{{#if clicked}}
{{#each submenus}}
{{> submenu}}
{{/each}}
{{/if}}
</template>
我已经确认点击时会触发onclick功能;切换this.clicked并调用我的点击处理程序。我还验证了如果我删除#if块或者如果我在初始页面加载时单击为true,则会出现子菜单。但是当我点击时,子菜单不会出现。
我还需要做些什么吗?我发现的关于Meteor的一切似乎暗示如果我改变任何数据,受影响的对象会被重新渲染,但看起来它们并没有在这里重新渲染。
答案 0 :(得分:0)
我认为“clicked”在你的mongodb db collection元素中,在这种情况下,你不能像你那样改变它的值。你必须这样称呼:
myCollection.update(_id, {clicked:!clicked});