2016-01-30 15 views
5

seguito * ngFor* ngFor mostra elemento array vuoto

<ul> 
    <li *ngFor="#todo of todoService.todos"> 
    {{todo}} 
    <li> 
</ul> 

Dove todoService è un'interfaccia iniettato

import {Injectable} from 'angular2/core'; 

@Injectable() 
export class TodoService { 
    todos = [] 
} 

Quando carico della pagina, l'uscita è <li></li> invece che nulla.

Qualche idea del perché? Poiché l'array è vuoto, non ci dovrebbe essere un <li> -tag

EDIT 'anche verificano quando inizializzare l'array con valori. C'è sempre un elemento vuoto trailing senza motivo.

EDIT2 esempio del problema https://plnkr.co/edit/MRYC4MHtlDLfBMUPsL6o?p=preview

risposta

12

Ah, sì :) è possibile fissare cieco problemi come questi, anche se la soluzione è a volte troppo semplice.

Credo che ti piacerebbe che il fondo <li> fosse un tag di chiusura? Che potrebbe anche risolvere il problema:

<ul> 
    <li *ngFor="#todo of todoService.todos"> 
    {{todo}} 
    </li> <!-- this nagger right here --> 
</ul> 
0

non in grado di riprodurre il problema con la beta1:

@Component({ 
    selector: 'my-app', 
    template: ` 
    <div> 
     Test: 
     <ul> 
     <li *ngFor="#l of service.list">{{l}}</li> 
     </ul> 
    </div> 
    ` 
}) 
export class AppComponent { 
    constructor(private service:Service) { 

    } 
} 

Vai a questa plunkr: https://plnkr.co/edit/hGpCIZQghtMBbpplV9tV?p=preview.

Quale versione di Angular2 hai utilizzato?

Thierry

+0

In realtà sono anche confuso, perché sto seguendo un tutorial (non il quickstart), ma io uso il boilerplate QuickStart da Google con "angular2": "2.0.0- beta.0 ", e il tuo campione mi dimostra che ho torto .. Sto cercando di trovare il motivo – Michael

+0

Qui il problema: https://plnkr.co/edit/MRYC4MHtlDLfBMUPsL6o?p=preview – Michael