角度 UI 选择限制到和预加载



我正在使用Angular UI-Select进行查找,但是当集合变得越来越长时,性能会很糟糕。

为了克服这个问题,我设置了一个限制在我的repeat上过滤(15 个项目),这是一个可行的选项,但我现在面临的问题是,当我加载页面并且我的ng-model中的值在第一个让我们说 15 个项目在我的重复中,我最终会得到一个空的下拉列表。我知道这是一个问题,并且在 github 上存在关于它的未决问题,但我希望有人可以对此有所了解,或者可以告诉我一个可行的解决方案......如果这意味着要更改UI-Select的javascript,我愿意承担风险,因为我不知道UI-Select团队很快就会修复它......

我使用的 UI-Select 版本是0.12.1

几天后,尝试了很多不同的方法来让我的预加载与限制工作。我决定构建自己的自定义限制过滤器。

这个过滤器的作用与角度限制要过滤完全相同,但我会将模型传递给它,以便我能够在所有项目的列表中查找该项目,并将其与标准限制完成的项目合并到...

我认为它非常整洁。

以防万一有人仍在寻找解决方案。
此自定义限制筛选器在限制列表之前删除所选项目。这是角度限制的简化版本(它只是假设您正在传递正确的值)。

angular
  .module('app')
  .filter('myLimitTo', myLimitToFilter);
/*========================================
 =                 filter                =
 ========================================*/
function myLimitToFilter() {
  return function (input, limit, selectedItems) {
    if (!_.isArray(input) && !_.isString(input)) {
      return input;
    }
    if (limit >= 0) {
      return input.filter(filterOutExisting).slice(0, limit);
    } else {
      return input.slice(limit, input.length);
    }
    function filterOutExisting(item) {
      return !_.includes(selectedItems, item);
    }
  };
}

相关内容

  • 没有找到相关文章

最新更新