2015-10-06 28 views
0

我在Ember中有一個選項卡組件(類似於Bootstrap的選項卡),其中每個選項卡都可以點擊,但在標籤旁邊也有一個刷新按鈕。我遇到的問題是,無論何時單擊刷新按鈕觸發refresh操作,switchTab操作打開選項卡也會觸發,因爲它們是嵌套的。由於動作不知道對方的存在,你怎麼觸發正確的操作任何東西(或取消不正確嗎?)Ember:帶有刷新按鈕的選項卡組件

<li class="tab" {{action 'switchTab' tab}}> 
    <span {{action 'refresh' tab}}>Refresh&nbsp;</span> 
    Bubble Bobble Tab 
</li> 

一種選擇是將標籤分成它自己的範圍,並把對switchTab該元素,但這意味着只有標籤是可點擊的(沒有更多的CSS),這是一種糟糕的用戶體驗。

回答

2

@Samuel,如果您不希望操作向上冒泡,您可以在動作助手內部使用bubbles=false。例如,

<li class="tab" {{action 'switchTab'}}> 
<span {{action 'refresh' bubbles=false}}>Refresh&nbsp;</span> 
Bubble Bobble Tab </li> 

http://ember-twiddle.com/b8d2b88cf5b18b613fd2

+0

酷,謝謝!這不是很好的命名。 –

+0

@SamuelLindblom它有點合理的壽。 http://guides.emberjs.com/v1.10.0/templates/actions/#toc_stopping-event-propagation –