我工作在角2.我面對的是,我從父母調用子組件的函數。和子功能更新我的數據集,最初加載HTML。但是當我站在同一個html上並再次調用該函數時,它在控制檯中顯示該數據集已加載新數據但未加載其html。 完整的場景: 我在我的標題部分有一個搜索欄。從重定向到結果頁面的位置以及調用其顯示查詢數據的函數。但是當我已經搜索過查詢並且站在結果頁面上時。新的數據查詢將再次調用該函數,數據集將被更新。但組件不會根據該數據集重新加載html。我如何重新加載它? 有什麼建議。? 這裏是代碼示例。 我header.ts爲什麼在更新後DOM不更新在角度2中設置數據?
Search(){
localStorage.setItem('val',JSON.stringify(this.query));
this.router.navigate(['/results']);
this.mobiles.ngOnInit();
}
}
和resuls.ts
ngOnInit() {
this.query=JSON.parse(localStorage.getItem('val'));
alert(this.query)
this.httpService.searchGeneric(this.query,1).subscribe(
data => {
this.Getspecs = data;
this.count=data['totalItems'];
this.ref.detectChanges();
this.ref.reattach();
console.log(data)
}
);
爲什麼新的更改不會出現在結果成分的HTML?有沒有人有這個想法?需要任何幫助。謝謝。
您是否在調用結果頁面上的函數後重新路由到同一頁面。如果你在一個組件上,並且你重新加載了相同的組件,Angular不會刷新你的綁定。它的性能改進不會再爲已經加載的組件刷新綁定。 –
閱讀[https://angular.io/guide/router#observable-params-and-component-reuse]這將告訴你實現你想要的方式。 –