gpt4 book ai didi

javascript - 仅将 limitTo 应用于特定的项目组

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

$scope.items = [
{"name":"laptop","color":"green"},
{"name":"shoe","color":"blue"},
{"name":"Car","color":"gold"},
{"name":"Car","color":"gold"},
{"name":"Car","color":"gold"}
];

如何将包含 name = 'car' 的项目限制为 2,同时保持其他项目不受影响 ng-repeat ?如果我这样做 <li ng-repeat="item in items | filter: {name: 'car'} | limitTo: 2"> ,它将返回 2 个汽车结果,但随后其他项目都消失了。

最佳答案

您的场景听起来更像是与“业务逻辑”相关的东西,而不是框架应该包含的功能。尝试实现您自己的自定义过滤器。

接近于:

自定义过滤器:

angular.module('myApp', []).filter('myFilter', function() {
return function(items, param1, param2) {
return items.reduce(function(a,c){ var count = a.filter(function(item){ return item.name ===param1; }).length; if(count<param2 || c.name !== param1 ) a.push(c); return a;},[]);
};
});

并在您的 html

 <li ng-repeat="item in items | myFilter:'car': 2">

当然,您可以扩展和执行更适合您应用需求的操作。

这里是 plunker demo

关于javascript - 仅将 limitTo 应用于特定的项目组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23623259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com