簡體   English   中英

ng-repeat內ng-click的性能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM