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/>
我有一个活动页面,展示了该地区的许多活动。页面顶部有一个 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/>