2016-06-09 114 views
3

我有組件。Angular 2 ngFor不更新數據

@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>' 

}) 

此外,這是我在服務

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

數據。當我這個數組

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

列表不更新添加新的元素。問題是什麼?

+0

如何將項目傳遞給'todo-list'組件?你能分享'todo-list'的整個代碼嗎 –

+0

提示:如果你在你的模板中使用反引號,你可以創建多行字符串而不是連接單個字符串。 –

+0

你在哪裏有代碼'service.items,push(new TodoModel());'?它從哪裏來的? –

回答

0

ASSUMPTION您使用的候選發佈版,而不是貝塔

有一個更新ngFor所以你需要改變

*ngFor="#item of items" 

到:

*ngFor="let item of items" 

你應該看到一個錯誤指示在瀏覽器的控制檯中聲明這一點,說明應該進行這種更改。

+0

所以我得到EXCEPTION:模板解析錯誤: 我該怎麼辦? – DmitriyKhirniy

+0

您是否在我的回答中提出了建議? – Brocco

+0

是的,當然 * ngFor =「let tem of items」>' – DmitriyKhirniy