javascript - 在 Angularjs 中针对特定领域使用 ng-repeat 的最佳方法

标签 javascript angularjs angularjs-ng-repeat

我是 Angularjs 新手,我的应用程序(使用 Angular 和 Rails 构建)花费了太多时间来加载图像/数据。所以我打算优化一下代码。这是一个非常快速而简短的问题。使用 ng-repeat 的最佳方法是什么?我计划在 ng-repeat 中使用 track by

在我的 $scope.attributes 中,我从服务器获取了数千个数据。每个领域都有很多领域。但我想使用其中的单个字段。所以我尝试了这样的事情:

<div ng-repeat="attribute in attributes track by attribute.name" >
<li> {{attribute.name}} </li>
</div>

这是正确的方法吗?我看到很多例子都使用 track by task.id 那么我可以使用任何特定 字段名称而不是id ?我也可以使用过滤器吗? $$hashkey 方法的含义是什么?我想加载图像,但需要更多时间。请专家指点。

最佳答案

如果您通过 .name 进行跟踪,它将使用 .name 作为标识符,例如,如果列表发生更改,它将通过 .name 查找 ROW

如果列表不会改变,就看单向绑定(bind)

<div ng-repeat="attribute in ::attributes track by $index" >
<li> {{attribute.name}} </li>
</div>

-- 我相信这会给你一个围绕 LI 的 DIV

与你的问题无关,但刚刚做了一些 AngularJS 性能调整。 考虑使用 ng-if 而不是 ng-show/ng-hide , ng-show/hide 仍然会生成 DOM , ng-if 不会。 (您可能已经这样做了)

关于javascript - 在 Angularjs 中针对特定领域使用 ng-repeat 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29538898/

相关文章:

javascript - 弹出窗口阻止 chrome 中的 gdrive 授权

javascript - 如何在触发 onclick 事件时将 id 从 View (HTML)传递到 AngularJs Controller ?

javascript - AngularJS 在工厂中创建元素

angularjs - 在 Angular JS 框架中从 Kendo Treeview 中检索所选项目的最佳方法

angularjs - ng-repeat 结合自定义指令

javascript - 在 Android 中,如何使用 Javascript 在 WebView 中设置编辑框的值

javascript - RequireJS - 在 r.js 优化包中导入模块

javascript - 从 Ember Addon 中注入(inject) Controller 操作

javascript - Select 不会自动更新使用 ng-repeat 呈现的 ng-model 更改

javascript - AngularJS 路由从 json 数据创建所有相同的 View 模板