我遇到这个问题,我不知道如何解决它.我在我的网页上使用了
ui-select multiselect.首先,将http.get请求发送到获取数据的URL,然后填充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,但可以选择所有选项.查看this thread了解更多详情.
2)由于某些时候,需要在选择中显示整个列表,1)不是一个可行的选择.我使用了一个不同的库 – selectize.js.这是一个plunker演示在页面中给出