2015-11-05 11 views
8

Sto sviluppando un app con Aurelia e diciamo che ho un ciclo lì:Aurelia repeat.for limitare

<div repeat.for="t of allTags">${t.name}</div> 

Ci sono molte voci in modo naturale che vorrei limitare il numero di essi indicato. Quindi, in pratica mi piacerebbe avere qualcosa di simile limite di ripetizione di angolare:

<div ng-repeat="t in allTags | limitTo:5 ">{{t.name}}</div> 

Ho controllato i documenti qui http://aurelia.io/docs.html ma non ho trovato nulla sul tema.

C'è una funzione come quella in Aurelia? Se no, preferirei tagliare l'elenco nel controller di farlo nella vista con $index?

Grazie!

risposta

17

Opzione 1: utilizzare un convertitore di valori.

take-valore-converter.js

export class TakeValueConverter { 
    toView(array, count) { 
    return array.slice(0, count); 
    } 
} 

app.html

<require from="./take-value-converter"></require> 

<div repeat.for="t of allTags | take:5">${t.name}</div> 

esempio vivo di questo scenario e molti altri here.

Altri documenti su convertitori di valore a aurelia.io

Opzione 2: ripetere per un certo numero

<div repeat.for="i of 5">${allTags[i].name}</div> 
+0

E 'possibile iniziare in un indice diverso da 0? – Axel

1

Se si vuole iniziare ad un valore diverso è possibile modificare la TakeValueConverter al metodo di toView aggiungi un terzo parametro.

toView(array,start,count){ 
    return array.slice(start,count); 
} 

Ma poi si deve tracciare l'ultima posizione in qualche modo te

Problemi correlati