2013-07-30 103 views
3

我想從onclick函數中觸發我的句柄模板中塊的可見性。我可以使用會話和幫助函數來實現這個功能,但看起來有點過分。從點擊事件更改屬性時重新呈現模板

<template name="eventlist"> 
    {{#each eventcollection}} 
    <div class="eventcontent"> 
    name: {{name}} <br> 
    {{#if showdetail}} 
     detail: {{detail}} 
    {{/if}} 
    </div> 
    {{/each}} 
</template> 

是否有可能使它以某種方式工作?

Template.eventlist.events = { 
    'click .eventcontent': function() { this.showdetail = true} 
} 

流星將只需要檢查,如果事後完成這個任何屬性發生變化,然後重新呈現模板

回答

0

何苦流星?這種事很容易在古老的Javascript天實現:

<template name="eventList"> 
    {{#each eventCollection}} 
     <div class="eventContent"> 
      name ... 
      <span class="eventHidden" style="display: none;"> 
       detail ... 
      </span> 
     </div> 
    {{/each}} 
</template> 


Template.eventList.events({ 
    'click .eventContent': function(e) { 
     $(e.target).find('.eventHidden').toggle(); 
    }, 
}); 
+0

是的,我同意,但如想象中一樣的DOM不同的活性元素,使流星重新呈現DOM的這一部分。我不得不聽,並重新顯示元素。事情開始變得混亂 –

+0

讓我看看一個真實的用例 - 想象力是一個很好的工具,但最好不要用它來產生軟件問題:)無論如何,在這種情況下,你需要將狀態存儲在某個地方,而且你可能不需要打算在客戶之間分享 - 所以會議將是一個適當的解決方案。但這是我的想法:http://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it。 –

+0

實際上,這個用例實際上出現在我的應用程序中。只要我改變其中一個在我的eventcontent div中的其他反應元素流星將它和我的細節元素隱藏起來 –

相關問題