【发布时间】:2016-04-06 02:05:10
【问题描述】:
我是 AngularJS 的新手。我的动态 UI(html 表格)如下所示。
ID | Name | CardNo |26 |27 |28 | 29 | 30 | 31 | 1 | 2 |3 | 11 |12...........|25
1 A 001 p p P p p P p
我的 Json 格式看起来像
var empAttendance = [ { 编号:1, 卡号:“001”, 名称:“A”, 出席人数:[ { "id": 1, "day": 28 }, { "id": 2, "day": 29}, { "id": 3, "day": 30 }, { "id": 4, "day": 31 }, { "id": 5, "day": 2 }, { "id": 5, "day": 12 } ] }];
dtRange = [26,27,28,29,30,31,1,2,3....................... ....25];
查看(html):
<table>
<thead>
<tr>
<th>ID</th>
<th>CardNo</th>
<th>Name</th>
th data-ng-repeat="dt in vm.dtRange">{{dt}}</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="p in vm.employeeAtt">
<td>{{p.id}}</td>
<td>{{p.cardNo}}</td>
<td>{{p.name}}</td>
<td data-ng-repeat="dt in vm.dtRange">
<span data-ng-repeat="att in p.attendance" ng-if="dt == att.day">P</span>
</td>
</tr>
</tbody>
</table>
看来,一名员工在日期范围内(列标题)有很多出勤率。我尝试根据日期值和匹配列标题将“P”放入 td 单元格。我不需要任何分页,并将加载所有过滤的员工列表相关的考勤。
但是,上述逻辑按预期工作。但是“渲染非常非常慢。甚至我评论了内线'P'。
我的最少员工人数是 500 人,最多 3000 人。我还尝试了缓存数据并确保渲染缓慢。我确实在 ng-repeat 中加入了限制。但仍然没有显着的性能变化。
任何想法都会对我很有帮助。我正在使用 Angularjs 1.5.0
谢谢
【问题讨论】:
标签: angularjs angularjs-ng-repeat