私はAngular2の初心者です。アプリはシンプルです:NotesContianerComponent
は、getNotes()
とaddNote()
メソッドを持つNoteService
に接続しています。角度 - Angular2がサービスからのデータを自動的に更新する方法がわかりません
NotesContainerComponent
では、サービスから返されたデータをメンバmyNotes
およびngOnInit
イベントに格納して、アレイをリフレッシュしています。私は現在そのコードのどこにでもその配列に触れていません。私は、フォームを使用して新しいメモを追加し、NotesContainerComponent
からサービスのaddNote()
メソッドを呼び出すとき
は今、ノートでは、バックエンドモックノートアレイに追加されますんが、同時に、UI(すなわちNotesContainerComponent
)が更新されます自動的に新しいメモと一緒に!私は手動でそれをリフレッシュするために何もしていません。
調査のために、console.log()
をサービスのgetNotes
メソッドに追加しましたが、最初に呼び出されるのはngOnInit
フックだけです。
私には分かりませんが、Angular2はサービスを自動的に照会することなく新しいメモをどのように知っていますか?そしてこれをやめる方法は?すべての手がかりをいただければ幸いです。参照用
NotesContainerComponent
コード:
export class NotesContainerComponent implements OnInit {
constructor(
private noteService: NoteService
) { }
addNote(newNote):void {
this.noteService.add(newNote);
}
myNotes: Notes[];
ngOnInit() {
this.noteService.getNotes()
.then(notes => this.myNotes = notes);
}
}
'myNotes'は、' getNotes() 'メソッドによってのみ更新できるコンポーネントのローカル配列を参照しています。正確には@aditya_m @ –
です。これを 'add'メソッドで更新し、配列を変更します。 'this.myNotes'はこのローカル配列を参照するので、それも変更されます。 – echonax
'add'メソッドはサービスに属し、コンポーネントのローカル配列ではなくサービスに存在するモック配列を更新します。 –