2017-03-17 39 views
0

我有使用ng-repeat列表構造;該列表包含與每個單獨項目相關的滑塊。更改單個項目會導致整個列表重新呈現。我怎樣才能防止重新呈現不變的項目?阻止更新以ng重複不變的項目

<ul ng-repeat="obj in collection"> 
    <li class="obj"> 
    {{obj}} 
    <input type="range" ng-model = "obj.value"> 
    </li> 
</ul> 

jsbin example

(在實際項目中我的工作,重新呈現整個列表,因爲有很多MathQuill表達的是昂貴的。此外,滑塊動畫,使重新呈現會發生了很多。)

+0

我不知道如果多數民衆贊成在可能的,但AngularJS我明白的是AngularJS使用髒檢查用於更新值。即使我們更改數組或對象中的一個值,也會調用整個摘要循環,以便它也將在視圖中更新。 –

+0

這是他們重新渲染的問題嗎?如果是這樣,爲什麼? – JLRishe

+0

你認爲這是重新渲染?在jsbin例如 –

回答

1

沒有什麼不對您的代碼。
僅供參考列表中沒有,即使你的內容添加到它重新呈現。 您可以通過打開開發人員工具來查看相同的內容。
我已經添加了數據屬性,以便每個li,讓您可以方便地查看列表不是重新渲染。
對於性能的提升可以通過表達式中使用的軌道像下面

<ul> 
    <li ng-repeat="obj in collection track by obj.name" class="obj" data-name="{{obj.name}}"> 
    {{obj}} 
    <input type="range" ng-model = "obj.value"> 
    </li> 
</ul> 

更新jsinb

+0

謝謝!你幫我意識到我的問題不是我的想法。在我的真實代碼中,我有一些JS,*是*每次都添加新元素 - 修復。 –