在ngOnInit生命週期鉤子期間進行服務調用後,我試圖更新組件的視圖。我訂閱服務方法,然後在訂閱方法中,遍歷響應以創建一個ToDo對象,然後將其推送到列表中。但是,執行此操作後,看起來todoList從不更新。有任何想法嗎?Angular4:在異步調用服務器之後更新組件視圖
下面是部分打字稿代碼:
export class CanvasComponent implements OnInit{
todo: ToDo;
todoList: ToDo[] = [];
tasks: Task[];
errorMessage: string;
constructor(public taskService: TaskService) {
}
ngOnInit(){
// this.todo = new ToDo(0, 'placeholder', false, 'Please Implement custom components!');
// this.newTodo = new ToDo(0, 'placeZholder', false, 'Please Implement custom components!');
this.taskService.GetAll()
.subscribe(response => {
this.todoList = response;
)
}
..和我的組件視圖打印此塊中的信息:
<div class="row">
<div *ngFor="let todo of todoList">
{{todo.title}}
{{todo.description}}
</div>
</div>
聽起來像'taskService.GetAll()'調用了一些非Angular代碼。你能否加上這個代碼以及你的問題?另見https://stackoverflow.com/questions/36919399/angular-2-view-not-updating-after-model-changes/36919459#36919459。在你的情況''zone.run()'可能是一個好主意,但它應該儘可能接近離開Angulars區域的代碼,而不是隨機的位置,這會破壞你的應用程序。 –