`[(ngModel)]`没有从控制器中获取值,如何解决?

时间:2017-04-21 17:06:21

标签: angular angular-ngmodel

我有一个待办事项列表项目,其中每个条目都是输入(内联修改)。

<div *ngFor="let t of todos;" class="list-item">
  <span class="list-item__checkbox">&nbsp;</span>
  <textarea class="todo-item__textarea"
    (input)="onTodoKeyEvent($event, t)"
    (keydown)="onTodoKeyEvent($event, t)"
    ([ngModel])="t.text"
    ></textarea>
  {{t.text}}
</div>

onTodoKeyEvent方法调用update函数,以更新数组中的todo数据。

onTodoKeyEvent(event, todo) {
  this.updateTodo({
    id: todo.id,
    text: event.target.value + 'additional text'
  });
}

我使用getter从服务中获取控制权:

get todos(): Todo[] {
  return this.todoDataService.get();
}

更新功能:

update(data: Todo) {
  let todo = this.todos[data.id];
  Object.assign(todo, data);
}

问题是我可以在todos数组中查看新数据,在{{t.text}}视图中查看,但textarea中的值,模型值与输入的相同,所以感觉像单向绑定。 enter image description here

为什么,我该如何解决?谢谢。

1 个答案:

答案 0 :(得分:3)

它是[(ngModel)]="t.text",而不是([ngModel])="t.text"

他们称之为Bananas in a box

这是方框:[ ] 这些是香蕉:( )