Buscar..


Sintaxis

  1. <div * ngFor = "dejar elemento de elementos; dejar i = indexar"> {{i}} {{elemento}} </ div>

Observaciones

La directiva estructural *ngFor se ejecuta como un bucle en una colección y repite un fragmento de html para cada elemento de una colección.

@View decorator ahora está en desuso. Los desarrolladores deben usar las propiedades de template o 'templateUrl' para @Component decorator.

Angular 2 for-loop

Para hacer clic plnkr en vivo ...

<!doctype html>
<html>
<head>
    <title>ng for loop in angular 2 with ES5.</title>
    <script type="text/javascript" src="https://code.angularjs.org/2.0.0-alpha.28/angular2.sfx.dev.js"></script>
    <script>
        var ngForLoop = function () {
            this.msg = "ng for loop in angular 2 with ES5.";
            this.users = ["Anil Singh", "Sunil Singh", "Sushil Singh", "Aradhya", 'Reena'];
        };

        ngForLoop.annotations = [
                new angular.Component({
                    selector: 'ngforloop'
                }),
                new angular.View({
                    template: '<H1>{{msg}}</H1>' +
                            '<p> User List : </p>' +
                            '<ul>' +
                            '<li *ng-for="let user of users">' +
                            '{{user}}' +
                            '</li>' +
                            '</ul>',
                    directives: [angular.NgFor]
                })
        ];

        document.addEventListener("DOMContentLoaded", function () {
            angular.bootstrap(ngForLoop);
        });
    </script>
</head>
<body>
    <ngforloop></ngforloop>
    <h2>
      <a href="http://www.code-sample.com/" target="_blank">For more detail...</a>
    </h2>
</body>
</html>

NgFor - Markup For Loop

La directiva NgFor crea una instancia de una plantilla por elemento desde un iterable. El contexto para cada plantilla instanciada se hereda del contexto externo con la variable de bucle dada establecida en el elemento actual del iterable.

Para personalizar el algoritmo de seguimiento predeterminado, NgFor admite la opción trackBy . trackBy toma una función que tiene dos argumentos: índice y elemento. Si se proporciona trackBy , las pistas angulares cambian según el valor de retorno de la función.

<li *ngFor="let item of items; let i = index; trackBy: trackByFn">
    {{i}} - {{item.name}}
</li>

Opciones adicionales : NgFor proporciona varios valores exportados que pueden ser asignados a las variables locales:

  • El índice se establecerá en la iteración del bucle actual para cada contexto de plantilla.
  • primero se establecerá en un valor booleano que indica si el elemento es el primero en la iteración.
  • el último se establecerá en un valor booleano que indica si el elemento es el último en la iteración.
  • incluso se establecerá en un valor booleano que indica si este elemento tiene un índice par.
  • odd se establecerá en un valor booleano que indica si este elemento tiene un índice impar.

* ngFor en las filas de la tabla

<table>
    <thead>
        <th>Name</th>
        <th>Index</th>
    </thead>
    <tbody>
        <tr *ngFor="let hero of heroes">
            <td>{{hero.name}}</td>
        </tr>
    </tbody>
</table>

* ngFor con componente

   @Component({
     selector: 'main-component',
     template: '<example-component    
                   *ngFor="let hero of heroes"
                   [hero]="hero"></example-component>'
   })


   @Component({
      selector: 'example-component',
      template: '<div>{{hero?.name}}</div>'
   })

   export class ExampleComponent {
     @Input() hero : Hero = null;
   }

* ngPara X cantidad de artículos por fila

El ejemplo muestra 5 artículos por fila:

<div *ngFor="let item of items; let i = index">
  <div *ngIf="i % 5 == 0" class="row">
    {{ item }}
    <div *ngIf="i + 1 < items.length">{{ items[i + 1] }}</div>
    <div *ngIf="i + 2 < items.length">{{ items[i + 2] }}</div>
    <div *ngIf="i + 3 < items.length">{{ items[i + 3] }}</div>
    <div *ngIf="i + 4 < items.length">{{ items[i + 4] }}</div>
  </div>
</div>


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow