我遇到这个问题,我不知道如何解决它.我在我的网页上使用了
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演示在页面中给出