0

我刚刚开始使用 Meteor,我有点困惑;我不确定这是 Meteor 问题还是 Handlebars 问题。

我正在尝试创建一个嵌套菜单(一组可点击的 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 块或者我在初始页面加载时将 clicked 设置为 true 会出现子菜单。但是当我点击时子菜单没有出现。

我还需要做些什么吗?我发现的关于 Meteor 的一切似乎都暗示,如果我更改任何数据,受影响的对象会重新渲染,但似乎它们没有在这里重新渲染。

4

1 回答 1

0

我想“点击”在你的 mongodb 数据库集合元素中,在这种情况下,你不能像你一样改变它的值。你必须这样称呼:

myCollection.update(_id, {clicked:!clicked});
于 2013-03-27T13:24:28.873 回答