2016-07-19 11 views
0

Ich fing gerade an Angular2 zu lernen, und ich habe ein Problem mit ngfor. Dies ist mein Code:Problem mit ngFor- Angular2

import { Component } from '@angular/core'; 
import {Person} from "./Person"; 


     @Component({ 
     selector: 'my-app', 
     moduleId: module.id, 
     templateUrl: 'app.component.html' 
     }) 


    export class AppComponent { 
     public title = 'Telphone-books'; 
     public persons=PERSONS; 
    } 

    const PERSONS: Person[] = [ 
     {id:1, Name:'Shai', LastName:'Sastiel', Telphone: '999999'}, 
     {id:2, Name:'Jon', LastName:'ali', Telphone: '888888'}, 
     {id:3, Name:'zeav', LastName:'jobs', Telphone: '7777777'}, 
     {id:4, Name:'byson', LastName:'ffaf', Telphone: '6666666'} 

    ]; 

Das ist mein app.component.html:

<h1>{{title}}</h1> 
<ul> 
    <li *ngFor="let person of PERSONS"> 
    {{persons.Name}} 
    </li> 
</ul> 

, wenn ich diesen Code ausführen ich nur den Titel zu sehen, aber ich habe nicht die Arrays von Personen sehen. habe ich die ngfor richtig schreiben? Vielleicht vermisse ich etwas? Danke für jede Hilfe!

+1

Vielleicht ein Tippfehler sein sollte? Ändere '{{persons.Name}}' in '{{person.Name}}' - auch irgendwelche Fehler in der Konsole? – rinukkusu

Antwort

3

Bindende Ausdrücke können sich nur auf Mitglieder der Komponenteninstanz beziehen, aber nicht auf willkürliche globale Daten.

Sie müssen die Eigenschaft Ihrer Komponenteninstanz anstelle der globalen Variablen verweisen:

<h1>{{title}}</h1> 
<ul> 
    <li *ngFor="let person of persons"> 
    {{person.Name}} 
    </li> 
</ul> 

wie @rinukkusu erwähnt {{persons.Name}}{{person.Name}}