2016-11-26 94 views
0

嗨,我只是想知道。我有一系列可以實現的可摺疊的div。我想要的是如果表頭活動呈現模板。我正在使用流星handsontables包。所以我希望表格在激活時呈現。所以我擁有的是。流星渲染模板,如果家長有類

<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); 
    } 
}); 

我想也許我可以好歹傳遞事件目標的助手,但似乎並沒有工作。有沒有我可以直接從手柄上檢查。

任何方式一些幫助將是偉大的。

+0

您是否嘗試過通過'''session'''變量傳遞事件對象? – blueren

+0

嗯。就像使用事件方法設置變量並通過助手訪問它一樣?我唯一的問題是我將不得不爲每個可摺疊的div有不同的幫手 –

+0

如果是這種情況,您可以註冊一個全球幫手 – blueren

回答

0

像這樣的東西可能會奏效:

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); 
    } 
}); 
+0

幫助被動 –

+0

@AmyTeresaHyland是的。這裏的幫助者是被動的,因爲我們正在利用被動的Session。我看到的唯一缺點是刷新頁面時會話未被設置。 – blueren