2

meteor での preserve メソッドの使用に問題があります。私がやりたいことをやっていないようです。

基本的に、レンダリングすると、閉じた状態で次のように見える 3 つのネストされたテンプレートがあります。

<div class="Dropdown"><!--From Template1-->
    <div class="Group"><!--From Template2-->
        <div class="SubGroup"><!--From Template3-->
            I'm the subgroup's content!
        </div>
    </div>
</div>

.SubGroup ノードのコンテンツを表示するには、すべてのテンプレート ラッパーに .Open クラス名が必要です。これは、クリック イベントで行われます。開いた状態での外観は次のとおりです。

<div class="Dropdown Open"><!--From Template1-->
    <div class="Group Open"><!--From Template2-->
        <div class="SubGroup Open"><!--From Template3-->
            I'm the subgroup's content!
        </div>
    </div>
</div>

問題は、イベントが発生して .SubGroup のコンテンツ内からデータベースを変更すると、Template2 と Template3 の両方が再レンダリングされ、プログラムで適用された .Open class が失われるように見えることです。

私はTemplate.Template2.preserve(['.Group']); それに影響を与える可能性があると思われるほぼすべてのセレクターで各テンプレートを使用しようとしました。{{#constant}} および {{#isolated}} ヘルパーも試しましたが、これらで期待される結果はまだ得られていません。

Meteor がクラス名を消去しないようにする正しい方法は何ですか?

4

1 に答える 1