2016-06-09 13 views
3

Ich habe Component.Angular 2 ngFor nicht aktualisieren Daten

@Component({ 
selector: 'todo-list', 
directives: [TodoItemRenderer], 
providers: [TodoService], 
template: 
    '<div>'+ 
     '<ul class="list-group">'+ 
      '<li [(ngClass)]="item.class" class="list-group-item" *ngFor="#item of items">' + 
       '<todo-item-renderer [todo] = "item"></todo-item-renderer>'+ 
      '</li>'+ 
     '</ul>'+ 
    '</div>' 

}) 

Auch ist dies die Daten, die ich im Dienst haben

items: TodoModel[] = [ 
    new TodoModel("sleep", "Completed"), 
    new TodoModel("eat", "In progress"), 
    new TodoModel("code", "In the plan") 
]; 

Wenn ich in diesem Array neues Element hinzuzufügen

service.items,push(new TodoModel()); 

Liste nicht aktualisiert. Was ist das Problem?

+0

Wie werden die Elemente an die 'todo-list' Komponente übergeben? Könnten Sie den ganzen Code von 'todo-list' teilen? –

+0

Hinweis: Wenn Sie Backticks um Ihre Vorlage herum verwenden, können Sie mehrzeilige Strings erstellen, anstatt einzelne Strings zu verketten. –

+0

Wo haben Sie den Code 'service.items, push (new TodoModel());'? Woher kommt es? –

Antwort

0

NAHME Sie Release Candidate verwenden und nicht Beta

Es gab ein Update auf ngFor, so dass Sie

*ngFor="#item of items" 

ändern müssen:

*ngFor="let item of items" 

Sie sollten einen Fehler ind sehen Icing dies in Ihrem Browser-Konsole erklären, dass diese Änderung vorgenommen werden sollte.

+0

So bekomme ich AUSNAHME: Template Parse Fehler: Was soll ich tun? – DmitriyKhirniy

+0

Haben Sie die Änderung vorgenommen, die ich in meiner Antwort vorgeschlagen habe? – Brocco

+0

Ja, sicher * ngFor = "let tem of items"> ' – DmitriyKhirniy

Verwandte Themen