J'ai une page d'événements qui présente de nombreux événements dans la région. Il y a un élément hero / banner en haut de la page sur lequel j'utilise un élément ng-repeat et je limite 1.
Ce que je voudrais faire, c'est que l'un des 3 prochains événements à venir soit affiché dans cette bannière. Ce serait donc un élément aléatoire qui apparaîtra là-dedans.
J'ai créé un filtre qui génère un aléatoirenombre entre 1 et 3, mais je ne suis pas certain de savoir comment filtrer mon json par ordre de date, puis dans le tableau de date ordonné pour générer mon nombre aléatoire et retirer 1 des 3 premiers de ce tableau.
Toute aide appréciée et ma répétition ressemble à ceci ...
<div ng-repeat="event in Event.events | dateFilter:From:To | Orderby: start_time | RandomGeneratorFilter | limitTo:1/>
Réponses:
0 pour la réponse № 1J'ai réussi à le comprendre en faisant mon filtre ci-dessus (RandomGeneratorFilter) faire ce qui suit:
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;
}
}
Où je passe dans randomNum comme mon calcul Math.floor ci-dessous:
vm.featuredRandom = Math.floor(Math.random()*(2-0+1)+0);
Donc, à la fin, ma répétition ng ressemble à ceci:
<div ng-repeat="event in Event.events | dateFilter:From:To | Orderby: start_time | RandomGeneratorFilter:vm.featuredRandom | limitTo:1/>