AngularJS:在接下来的 5 个活动日内随机显示一个 json 对象

AngularJS: Show a random json object within the next 5 event days

我有一个活动页面,展示了该地区的许多活动。页面顶部有一个 hero/banner 元素,我在该元素上使用了 ng-repeat 元素并将其限制为 1。

我想做的是在此横幅中显示接下来 3 场即将举行的活动中的 1 场。所以它会是一个随机项目,在那里显示。

我创建了一个过滤器,它生成一个介于 1 和 3 之间的随机数,但我有点不确定如何按日期顺序过滤我的 json,然后在日期顺序数组中生成我的随机数数并从该数组的前 3 个中取出 1 个。

感谢任何帮助,我的重复看起来像这样...

<div ng-repeat="event in Event.events | dateFilter:From:To | Orderby: start_time | RandomGeneratorFilter | limitTo:1/>

我设法通过让上面的过滤器 (RandomGeneratorFilter) 执行以下操作来解决这个问题:

function RandomGeneratorFilter($filter){
        return function(items,randomNum){
            var results = [];
            if(items && items.length >= 3){
                var itemsLength = items.length;
                results.push(items[randomNum]);
            }else if(items && items.length < 3){
                results.push(items[0]);
            }
            return results;
        }
    }

我在下面的 Math.floor 计算中传入 randomNum:

vm.featuredRandom = Math.floor(Math.random()*(2-0+1)+0);

所以最后我的 ng-repeat 看起来像这样:

<div ng-repeat="event in Event.events | dateFilter:From:To | Orderby: start_time | RandomGeneratorFilter:vm.featuredRandom | limitTo:1/>