2017-10-17 126 views
0

我試圖綁定Angular下拉(Angular 2+)與19000+記錄,它掛起應用程序,我們無法執行任何其他操作。Binding Dropdown with large dataset Angular 2

我只是用*ngFor,對於同一

<select class="form-control" name="occupation" 
    [(ngModel)]="model.occupation" #occupation="ngModel" required 
    (ngModelChange)="onChange($event)"> 
    <option *ngFor="let c of ocupencycollection;"> 
     {{ c }} 
    </option> 
</select> 

任何其他可行的解決辦法?

+3

與19000+記錄下拉?我的天啊! – Sajeetharan

+0

悲傷但真的是客戶需求需要所有職業列表): – user3886602

+3

更改您的用戶界面。使用打字機或簡單的搜索框。 –

回答

1

我不認爲你可以做到這一點,而不會嚴重影響性能。 我會建議一個商業解決方案。我爲Angular使用Kendo-UI。
在我的情況下,我允許用戶在DropDownList中選擇合作伙伴(500萬條記錄)。我顯示了20個合作伙伴,然後允許過濾。

您的問題相應的演示將是:

您可以結合這兩種方法。還有一個請求支持無限滾動,這可能是最好的方法。

如果支付解決方案不可接受,您可以按需加載項目。首先顯示20個項目,然後在用戶滾動到結尾後,載入另一頁記錄。 This可能會幫助你。

+0

劍道又是一個成本,所以無法使用:) – user3886602

+0

我認爲那麼你唯一的解決方案是創建自定義組件,它將監聽滾動事件和滾動到結束時加載新項目。這樣你就可以自定義實現無限/無限滾動。 – Makla