javascript - 防止更新 ng-repeat 中未更改的项目

标签 javascript angularjs angularjs-ng-repeat

我有一个使用ng-repeat构建的列表;该列表包含与每个单独项目相关的 slider 。更改单个项目会导致整个列表重新呈现。如何防止未更改的项目重新渲染?

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

jsbin example

(在我正在进行的实际项目中,重新渲染整个列表的成本很高,因为有很多 MathQuill 表达式。此外, slider 是动画的,因此会经常发生重新渲染。)

最佳答案

您的代码没有任何问题。
仅供引用,即使您向其中添加内容,该列表也不会重新呈现。 您可以通过打开开发者工具进行检查。
我已向每个 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

关于javascript - 防止更新 ng-repeat 中未更改的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42865582/

相关文章:

javascript - 使用 ng-repeat (AngularJS) 迭代 JSON

javascript - ng-repeat Angular 中每个数据有不同的表行

javascript - AngularJS 使用 $sce.trustAsHtml 和 ng-repeat

javascript - 在 IE 的 pre 元素中插入带有 innerHTML 的换行符 (\n) 不起作用?

javascript - 更改页面加载 ionic 上的导航栏颜色

javascript - Node 休息 API : put request is not updating the request data

javascript - 使用包含空格的变量在 html 中设置 "value"属性

javascript - Angular $scope 变量在更新时中断

node.js - Express Session + Angular : can't access connect. sid cookie

javascript - Angular : dynamic form generation