[英]performance of angularjs ng-click inside ng-repeat
它比已驗證的問題更令人懷疑,但是..
我已經使用了ockoutoutjs一段時間,創建許多ko click綁定存在性能問題-更好的方法是使用更少的jQuery .on('click',...)來處理這些問題。
現在,我開始學習angularjs,在ng-repeat中有一個ng-repeat,在第二個中,我有幾個ng-click按鈕。
<ul>
<li ng-repeat="el in collection">
<button ng-click="someFn()">click me</button>
<button ng-click="someFn2()">click me</button>
<button ng-click="someFn3(el)">click me</button>
</li>
</ul>
這是否不會創建大量點擊事件綁定? 還是以某種方式優化角度?
在這種情況下,幾乎沒有任何優化。 如果您有幾個嵌套的ngRepeats,該怎么辦。 應該針對哪個執行優化? 確實不容易回答。 此外,重復的項目可以由另一個控制器控制。
我看到以下完成任務的方法。
我們可以將ngClick應用於父元素,以調用某些方法並傳遞允許識別被單擊項的值。
<ul ng-click="itemClicked(itemIdentifier)">
<li ng-repeat="el in collection">
<button>click me</button>
</li>
</ul>
剩下要回答的唯一問題是我們如何獲得這一識別價值。 我們需要將自己的指令應用於重復的DOM元素,該元素將此值附加到元素上。 之后,我們可以從$event
對象獲取值。
<ul ng-click="itemClicked($event.target.itemIdentifier)">
<li ng-repeat="el in collection">
<button click-optimiztation="el">click me</button>
</li>
</ul>
當然,您必須檢查undefined
值。
這種方法必須適合您的需求,因為您希望每個重復的模板中都有多個可單擊的元素。 盡管如此,我希望這個想法很明確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.