Angular 2重新加载组件基于激活的路线

时间:2016-11-07 14:23:37

标签: angular typescript angular2-routing angular2-components

我有一个组件,我想重新用于不同的路由器链接,并根据链接参数重新加载服务器数据。从我目前所看到的情况来看,建议让你进入一个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。

0 个答案:

没有答案