我有一个组件,我想重新用于不同的路由器链接,并根据链接参数重新加载服务器数据。从我目前所看到的情况来看,建议让你进入一个ng区域,以便触发组件及其子组件的重新渲染。
我也将对象从http请求进一步传递给子组件。
这是组件onInit代码:
ngOnInit(): void {
this.route.params.forEach((params: Params) => {
let id = +params['id'];
this._userHttpService.getUserData(id)
.subscribe(UserData=>
this._ngZone.run(() => this.UserData= UserData)
);
});
}
这是标记
<div *ngIf="UserData">
<div class="container-fluid">
<h3>{{UserData.Id}}</h3>
<user-tiles [UserData]="UserData"></user-tiles>
</div>
</div>
路由工作正常,从服务器检索正确的数据,<h3>
内的内容在一秒钟后更新,但“user-tiles”组件不会重新呈现。 UserData是用户切片内的@Input。