2017-04-21 12 views
1

私はすべてのエントリが入力(インライン変更)であるtodoリストプロジェクトを持っています。`[(ngModel)]`はcontollerから値を得られません。どうすれば修正できますか?

<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メソッドは、配列のtodoデータを更新するためにupdate関数を呼び出します。

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

私はゲッターを使用してサービスからコントローラにドスを取得:

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

どうして私はそれを修正できますか?ありがとうございました。

答えて

3

[(ngModel)]="t.text"ではなく、([ngModel])="t.text"です。

は、彼らはそれBananas in a boxを呼び出す:

これはボックスです:[ ] は、これらはバナナです:()

+0

おかしい;)おかげで、私は失われました。 – Georgy

+0

@Georgyこのようなことは私にとってかなり頻繁に起こります...もしあなたがうまくいけば、答えを受け入れることを検討してください:) –

+0

あなたは質問のタイトル、hahaに正しい構文を使ったことさえあります。 – zigzag

関連する問題