我工作在角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]这将告诉你实现你想要的方式。 –