2016-06-09 122 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