2015-03-17 14 views
10

Sto creando un elenco di report studenti con Angularjs ng-repeat. Il mio problema se come posso aggiungere dinamicamente la numerazione come lista ordinata alla lista generata in vista. voglio ottenere qualcosa di simileNumerazione automatica di Angularjs ng-repeat list

# | Name of student | Student ID 
_________________________________ 
1 | Samuel Addo  | 346578 
2 | GRace Asumani | 965433 
3 | Zein Akill  | 123455 
4 | David Addoteye | 678543 

La colonna '#' dovrebbe essere auto generano durante il rendering del modello in vista attraverso ng-repeat. Sinceramente non so da dove cominciare perché non so come farlo. Sarò felice se qualcuno può aiutarmi o indicarmi la giusta fonte. Grazie.

+0

Che cosa dovrebbe accadere se si fa clic sull'intestazione '#' e si è invertito? O è il comportamento desiderato che la colonna '#' sta sempre incrementando – pixelbits

+0

è solo per scopi di numerazione, non intende ordinare da essa. grazie –

risposta

53

All'interno ng-repeat, è possibile utilizzare:

{{$index +1}} 

Così, per esempio:

<tr ng-repeat="student in students"> 
    <td>#{{$index + 1}}</td> 
    <td>{{student.name}}</td> 
</tr> 

$ index è una variabile prevista dalla direttiva ng ripetizione che ti dà l'indice corrente. Qui ho aggiunto 1 a questo in modo che i numeri inizino da 1 anziché 0. ng-repeat documentation

+1

Questa risposta è sufficiente per la soluzione. È buono (anche se ovvio), far sapere all'utente che '{{$ index}}' conta gli indici di loop proprio come qualsiasi loop in Javascript. Possiamo anche fare l'aritmetica con. – Bikas

+0

Waow, è stato veloce, grazie amico. Per favore, puoi aiutarmi anche su come ricalcolare la lunghezza del modello quando viene filtrata. per esempio se ho 10 record e lo filtro per nome in 4, come posso aggiornare la lunghezza del modello a 4? grazie ancora –

+1

Scusa, ho scritto la risposta sul mio telefono, la modifico ora per un esempio più completo. Inoltre, bello sapere che ha aiutato. Per quanto riguarda l'altro problema, non ne sono del tutto sicuro. Ci penserò. – juunas

4

Sì, è possibile utilizzare {{$ indice}} per stampare la posizione dell'indice per numero di serie all'interno di ng-repeat.

Sono disponibili anche altre variabili per il calcolo e il controllo di prima, media, ultima, dispari, anche utilizzando $ prima, $ media, $ ultima, $ dispari e $ pari rispettivamente.

  • $ indice: iteratore offset dell'elemento ripetuto (0..length-1)
  • $ primo: true se l'elemento ripetuto è il primo nel iteratore.
  • $ medio: vero se l'elemento ripetuto è tra il primo e l'ultimo in l'iteratore.
  • $ ultimo: vero se l'elemento ripetuto è l'ultimo nell'iteratore .
  • $ pari a: true se la posizione iteratore $ index è pari a (altrimenti falso).
  • $ dispari: vero se la posizione iteratore $ indice è dispari (altrimenti falso).
Problemi correlati