我遇到了这个问题,我不知道如何解决。我用过一个ui-select 多选 https://github.com/angular-ui/ui-select在我的页面中。首先,向获取数据的 url 发出 http.get 请求,然后填充 ui-select 选项。数据很大 - 数据长度为 2100。该数据将显示为选项。 (页面加载过程中一开始就取出数据,保存在数组中)
但问题是每次我单击多选来选择一个选项时,需要 4-5 秒才能填充列表,并且页面变得非常慢。我该怎么做才能减少这个时间?
选择数据存储在数组中,数据类型是字符串数组。
<ui-select multiple ng-model="selectedFields.name" style="width: 100%;">
<ui-select-match placeholder="Select fields...">{{$item}}</ui-select-match>
<ui-select-choices repeat="fields in availableFields | filter:$select.search">
{{fields}}
</ui-select-choices>
</ui-select>
在控制器中,
$scope.selectedFields = {};
$scope.selectedFields.name = [];
$scope.init = function() {
$http.get(url)
.success( function(response, status, headers, config) {
availableFields = response;
})
.error( function(err) {
});
};
$scope.init();
如果不是这样,我是否可以使用任何其他选项/选择,而不会延迟显示选择选项?
这是 ui-select 中的一个已知问题。我尝试了以下方法,都有效
1)有一个解决方法 - 使用
| limitTo: 100
这将选项显示限制为 100 个,但可以选择所有选项。看着这个线程 https://github.com/angular-ui/ui-select/issues/88更多细节。
2) 由于有时需要在选项中显示整个列表,1) 不是一个可行的选项。我使用了不同的库 -selectize.js http://angular-js.in/selectize-js/。这是一个plunker http://plnkr.co/edit/X2YYPX?p=preview页面中给出的演示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)