我創建了一個ng-repeat
的表格,tr
元素有1.000條記錄。 當我通過更改ng-repeat
所綁定的項目來過濾表格元素時,清理表格時出現奇怪的行爲。AngularJS ngRepeat在清除批量數據時顯示行爲遲緩
就這個問題而言,我已儘量減少對最簡單表達式的要求。
這是我的Typescript
代碼加載1.000數據時,點擊按鈕加載和加載只有1條記錄,當點擊重置按鈕。
SearchFilters =() => {
this.dataSEJLABELCurrent = [];
for (var i = 0; i < 1000; i++) {
this.dataSEJLABELCurrent.push({ SEJCOD: "sej" + i, ADMDAT: "19650521", ADMHEU: "72800", SORDAT: "19650521", SORHEU: "72800", PATCOD: "35", PATPRE: "j" + i, PATNOM: "n" + i, NAIDAT: "19650521" });
}
}
ResetFilters =() => {
var i = 0;
this.dataSEJLABELCurrent=[{ SEJCOD: "sej" + i, ADMDAT: "19650521", ADMHEU: "72800", SORDAT: "19650521", SORHEU: "72800", PATCOD: "35", PATPRE: "j" + i, PATNOM: "n" + i, NAIDAT: "19650521" }];
}
這是我與ng-repeat
HTML頁面:
<tbody>
<tr ng-repeat="item in vm.dataSEJLABELCurrent" class="pointer shadow hover">
<td>{{::item.SEJCOD}}</td>
<td>{{item.ADMDAT}} {{item.ADMHEU}}</td>
<td>{{item.SORDAT}} {{item.SORHEU}}</td>
<td>{{::item.PATCOD}}</td>
<td>{{::item.PATPRE}}</td>
<td>{{::item.PATNOM}}</td>
<td>{{item.NAIDAT}}</td>
</tr>
</tbody>
當我點擊過濾器按鈕,什麼視覺上出現的情況是:
- 我的新推記錄顯示在當前的頂部記錄在屏幕上。
- HTML表格中現在有1000 + 1條記錄。
- 其他(以前的)記錄在2秒內逐一刪除。
- 在某些時候,所有的原始1.000記錄都將被刪除,並保留新的記錄。
它看起來像我的記錄HTML側增加速度放緩,甚至更多,從我所看到的每一個小節的操作顯示行爲正在放緩的過程中,每操作:
- 添加新屬性來顯示(甚至複製相同的內容,例如顯示10倍
SEJCOD
)。 - 添加一個函數,例如
vm.formatOwnDate(item.ADMDAT)
而不是item.ADMDAT
。 - 在tr元素上添加
ui-sref="sejlabel({sejcod:'{{item.SEJCOD}}'})"
。
我不明白爲什麼這種行爲只出現在明確而不是顯示數據呢?
這是一個gif
的行爲:http://imgur.com/y74VHcf(點擊它可以全屏顯示)。
更新ng-repeat
模型從1.000到1記錄創建一個奇怪的行爲,就像它從屏幕上清除記錄2秒一樣,因爲它有很多工作要做,但從1更新到1.000是即時的。
猜測這有做呈現新視圖沒有1000條記錄與在已經與1000視圖記錄並添加1個。 – rrd
1000綁定真的會讓你的系統崩潰,角度不是爲了這個。我建議你使用分頁或其他東西。 – Michelangelo