gpt4 book ai didi

javascript - Angular 在 orderBy 之后获取中间索引

转载 作者:行者123 更新时间:2023-11-28 15:28:50 24 4
gpt4 key购买 nike

正如您所知,在 orderBy 表失去排序后,$index 值来自排序后的数组,而不是来自原始数组。因此,如果您将 items 数组 ['orange', 'banana','potato','apple'] 传递给您的 ng-repeat ,在 UI 上的 orderBy 之后,您将看到如下所示的内容:

- apple   $index = 0
- banana $index = 1
- orange $index = 2
- potato $index = 3

如果您现在想要在 apple($index = 0)orange($index = 2) 之间进行多项选择,您可能会认为这可行:

for(index = 0; index <= 2; index++)
console.log(items[index])

这是错误的,它将打印:[orange,banana,potato];不是[苹果、香蕉、橙子]

我正在寻找一种方法来获取 orderBy 之后显示数组的间隔索引,有什么想法吗?

编辑:澄清一下,假设您在用户界面上对项目进行了排序,然后选择苹果,然后选择橙色:

✓ apple
banana
✓ orange
potato

我想要一种方法来了解这两个选定项目之间的项目,以便我可以选择其中的所有项目,在我们的例子中是banana.

最佳答案

我认为解决此问题的最简单方法是预先过滤 Controller 中的数组并对该数组进行操作。

$scope.orderedItems = $filter("orderBy")($scope.Items, "+");

$scope.multiSelect = function(minIdx, maxIdx){
//...
$scope.selectedItems = $scope.orderedItems.slice(minIdx, maxIdx);
}

当然,在 View 中,您可以在不使用过滤器的情况下对orderedItems进行ng-repeat:

<div ng-repeat="item in orderedItems">
{{item}}
</div>

关于javascript - Angular 在 orderBy 之后获取中间索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28168572/

24 4 0
文章推荐: javascript - Angular JS CSS 双向更新
文章推荐: javascript - 使用数组或变量的 jquery 验证器正则表达式
文章推荐: CSS Accordion 菜单 - 如何扩展和超链接
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com