【发布时间】:2018-07-13 11:50:20
【问题描述】:
当 ngFor 应该渲染 7600 个字符串项目时,性能会很慢,浏览器会冻结几秒钟。
是否有可能提高 ngFor 的性能?
ngFor 代码:
<ul *ngIf="isOpen"
class="nano-drop-down-list"
dropdownMenu>
<li class="nano-f-r nano-f-30">
<input [(ngModel)]="searchString"
class="nano-f nano-p-0_10 nano-bc-ws hover-effect"
placeholder="Search..." type="text"/>
</li>
<!-- ngFor which should be improved -->
<li *ngFor="let option of arrayOfOptions | nanoSearchByKey:searchString:displayProperty;"
[ngClass]="{'active':isOptionSelected(option[valueProperty])}"
class="nano-f-r nano-f-30 nano-bc-ws hover-effect">
<button (click)="handleClickOnOption(option[valueProperty]);"
type="button"
class="nano-f-c nano-f nano-p-0_10 nano-overflow-h">
<div class="nano-f-r nano-f">
<span class="nano-m-aaa0 nano-overflow-e">
{{ option[displayProperty] }}
</span>
<div *ngIf="isMultiple"
class="nano-f-r nano-f-30">
<i *ngIf="isOptionSelected(option[valueProperty])"
class="fa fa-check nano-m-a"
aria-hidden="true"></i>
</div>
</div>
</button>
</li>
</ul>
【问题讨论】:
-
使用服务器过滤减少列表中要填充的项目数
标签: javascript angular typescript