2016-04-30 51 views

回答

4

你可以從你在這種情況下,申購(認購該方法的返回對象)退訂:

var subscription = Observable.interval(5000).subscribe(res => { 
    // Something happens here 
}); 

// to be called when the route changes 
subscription.unsubscribe(); 

因爲觀察到的是冷的,會有沒有更多的認購,可觀察到的將被配置...

您可以利用組件中的「routerOnDesactivate」鉤子方法來取消訂閱。當您將路由組件留在路由上下文中時,它是讓您知道的鉤子。

請參閱此鏈接瞭解詳情:

+0

這看起來很公平,但我怎麼知道組件內的路由何時更改? –

+0

您可以利用組件中的routerOnDesactivate掛鉤方法來取消訂閱。我更新了我的答案。 –

0

解決這個一個偉大的方式是創建可觀測的變量,並使用「|異步'管道來訂閱並顯示模板上的值。取消訂閱然後全部由管道照顧。