Meteor 渲染模板如果 parent 有 class

Meteor render template if parent has class

你好,我只是想知道。我有一系列来自 materialize 的可折叠 div。我想要做的是,如果 table header 处于活动状态,则呈现模板。我正在使用 meteor handsontables 包。所以我希望 tables 在活动时呈现。所以我所拥有的是。

 <ul class="collapsible" data-collapsible="accordion">
                    <li>
                        <div class="collapsible-header"><i class="material-icons">filter_drama</i>Global What Ifs</div>
                        <div class="collapsible-body">
                            {{#if isActive}}
                                {{>GlobalWhatIf}}
                            {{/if}}
                        </div>
                    </li>
                    <li>
                        <div class="collapsible-header"><i class="material-icons">place</i>Second</div>
                        <div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
                    </li>
                    <li>
                        <div class="collapsible-header"><i class="material-icons">whatshot</i>Third</div>
                        <div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
                    </li>
                </ul>

如您所见,目前我只加载了一个模板,但我确实计划静置几个。

然后我的js

Template.CompanyDetails.onRendered(function(){
    $('.collapsible').collapsible();
});

Template.CompanyDetails.helpers({
    isActive: function(event) {
        return true;
    }
})

Template.CompanyDetails.events({
    'click .collapsible-header' : function(event, template){
        console.log(event.currentTarget);
    }
});

我想也许我可以在助手中以某种方式传递事件目标,但似乎不起作用。有什么方法可以直接从车把上检查吗

任何帮助都会很棒。

类似这样的方法可能有效:

Template.CompanyDetails.onRendered(function(){
    $('.collapsible').collapsible();
});

Template.CompanyDetails.helpers({
    isActive: function() {
       if(Session.get("event")){
        return true;
        Session.set("event",undefined);
    }
  }
})

Template.CompanyDetails.events({
    'click .collapsible-header' : function(event, template){
        console.log(event.currentTarget);
        Session.set("event",event);
    }
});