【问题标题】:AngularJS isteven-multi-select limit display optionsAngularJS isteven-多选限制显示选项
【发布时间】:2016-08-11 06:51:41
【问题描述】:

我正在使用 isteven-multi-select 来显示来自 DB 的选择选项。不幸的是,它可能是一个非常大的数组(从“几个”到“+100K”记录)。这就是我使用带有过滤器的智能选择的原因。有什么办法可以设置渲染选项的限制以提高性能?目前大数组下拉一个js和一个firefox。

我的选择:

<div isteven-multi-select
     input-model="data.select.options"
     output-model="data.select.data" 
     button-label="label"
     item-label="id label"
     tick-property="ticked"
     max-labels="4" >
 </div>

控制器:

...
DataInfoResource.query(
    function(data) {
        $scope.data.select.options = data;
        console.log(data);
    }
);
....

我也尝试了 select2,但我没有找到任何方法。

感谢您的建议。

【问题讨论】:

  • 尝试关注:$scope.numberToArray = function(num) { return new Array(num); } 部分....
  • 您的意思是为选项创建自己的过滤器?并在更改控制所有选定的选项并手动过滤data.select.options
  • 我认为有问题,因为我想过滤所有选项,但只显示其中的几个。当我创建原始数组的子集时,我将丢失“全部过滤”。

标签: javascript angularjs multi-select


【解决方案1】:

可以试试这个:

<div isteven-multi-select ... max-height="250px"></div>

PS。我无法添加评论,因为以下答案

【讨论】:

    【解决方案2】:

    这是我在列表大小更大时所做的。不确定它是否适用于 10 万条记录,但您仍然可以尝试。它确实适用于 6k 记录。 修改isteven-multi-select.js中的模板如下

    'ng-repeat="item in filteredModel | filter:removeGroupEndMarker" class="multiSelectItem"'

    'ng-repeat="item in filteredModel | filter:removeGroupEndMarker | limitTo:100" class="multiSelectItem"'

    【讨论】:

      猜你喜欢
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2015-05-03
      相关资源
      最近更新 更多