2016-07-14 30 views
1

鑑於ul列表定義如下:click.delegate在AureliaJS UL項目

<ul click.delegate="onListItemClick()"> 
    <li repeat.for="suggestion of suggestions"> 
     ${suggestion.name} 
    </li> 
</ul> 

我如何通過建議對象onListItemClick?我知道我可以在每個個人li元素上放置click.delegate,然後捕獲當前suggestion,但是這不符合事件委託的想法嗎?我的意思是 - 那麼我會附加多個事件處理程序,如果是這樣,我可以使用click.trigger。我不想這樣做,因爲這些suggestion對象中可能會有很多。

回答

3

將點擊處理程序放在li元素上。這就是Aurelia事件代表團的重點。它可以讓你做這樣的事情,而不需要創建一堆事件處理程序。只有一個事件處理程序是由框架爲您創建的。它委託電話。所有的元素點擊事件將被設置爲相同的功能,Aurelia將處理調用您的VM方法。

這裏有一個gist.run:https://gist.run/?id=406bf3bc73e415db7afa7d46d7e958d3

<template> 
    You clicked suggestion id "${clickedId}" 
    <ul> 
    <li repeat.for="suggestion of suggestions" click.delegate="handleClick(suggestion)"> 
     ${suggestion.name} 
    </li> 
    </ul> 
</template> 
+0

這就是我懷疑,但我無法找到任何信息。謝謝! –