/ / AngularJS: mostra un oggetto json casuale entro i prossimi 5 giorni di eventi: angularjs, json, angularjs-ng-repeat, ng-repeat, filtri angolari

AngularJS: mostra un oggetto json a caso entro i prossimi 5 giorni dell'evento: angularjs, json, angularjs-ng-repeat, ng-repeat, angular-filters

Ho una pagina di eventi che mette in mostra molti eventi nella zona. C'è un elemento eroe / banner nella parte superiore della pagina che sto usando un elemento ng-repeat su e limitando a 1.

Quello che vorrei fare è che in questo banner vengano visualizzati 1 dei 3 prossimi eventi in programma. Quindi sarebbe un oggetto casuale che viene mostrato lì dentro.

Ho creato un filtro che genera un casualeun numero compreso tra 1 e 3 ma non sono sicuro di come filtrare il mio json per ordine di data e quindi entro l'array della data ordinata per generare il mio numero casuale ed estrarre 1 dei primi 3 in quell'array.

Qualsiasi aiuto è stato apprezzato e la mia ripetizione è simile a questa ...

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

risposte:

0 per risposta № 1

Sono riuscito a capirlo facendo in modo che il mio filtro sopra (RandomGeneratorFilter) facesse il seguente:

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;
}
}

Dove passo in randomNum come il mio calcolo Math.floor di seguito:

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

Quindi alla fine il mio ng-repeat assomiglia a questo:

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