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

「クリックされた」はmongodbdbコレクション要素にあると思います。この場合、その値を変更することはできません。あなたはそのような何かを呼び出さなければなりません:

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