2017-10-17 90 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