2017-10-11 18 views
0

在我的应用程序中,我有一个在加载/contacts路由时加载的联系人列表,如果用户点击特定的联系人,我加载子节点路径/contacts/view显示该联系人的详细信息。angular + ngrx如果组件已经初始化,如何获取数据

/contacts/view/:id第一次加载(比如/ contacts/view/1)时,ngOnInit()被触发,调度LoadContact动作,负责从服务器获取联系人数据。但是,如果我导航到其他联系人点击列表中的另一个项目(比如/ contacts/view/2),ngOnInit()不会被触发,我无法从服务器获取数据。

关于如何确保视图组件始终在任何导航(第一次加载和后续导航)时从服务器获取新数据的任何想法?

感谢, 加布

回答

1

您需要使用Activated Route这个

ngOnInit() { 
    this.sub = this.route.params.subscribe(params => { 
     this.id = +params['id']; 

     // dispatch action to load the details here. 
    }); 
    } 
+0

谢谢!我错误地使用了'this.route.snapshot',它不返回一个可观察的,因此我不想订阅后续的变化 – gabric