2017-10-11 181 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