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

时间:2016-05-26 21:17:21

标签: angularjs json angularjs-ng-repeat ng-repeat angular-filters

我有一个活动页面,展示了该地区的许多活动。页面顶部有一个英雄/横幅元素,我正在使用ng-repeat元素并限制为1.

我想要做的是在此横幅中显示接下来的3个即将发生的事件中的一个。所以这将是随机项目。

我创建了一个过滤器,它生成1到3之间的随机数,但我不知道如何按日期顺序过滤我的json,然后在日期有序数组中生成我的随机数并拉出1该阵列中的前3名。

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

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

1 个答案:

答案 0 :(得分:0)

我设法通过让我的上面的过滤器(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;
        }
    }

我在下面传递randomNum作为我的Math.floor计算:

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/>