2017-07-18 52 views
0

我剛剛將我的angualr-cli項目升級到了Angualr 4.0和本地[email protected],在我的app.component.ts以下代碼工作正常升級:Angular 4.0路由器NavigationStart事件不包含網址memeber

現在網址memeber不再可用事件

router.events.filter(event => event instanceof NavigationStart) 
     .subscribe(e => { 
     this.currentUrl = e.url; // Error here 'url is not defined in Event' 
      console.log("Now route", e.toString()); // logs something like NavigationStart(id: 1, url:'/my-url') as a string 
    }) 

我怎樣才能從「E」得到「URL」成員,而無需操縱由「電子返回的字符串。 toString()'的NavigationStart類。

是否有不同的方式來獲得當前和以前的路線從路由器的字符串時,用戶導航?請指教這一點。

我的理解是非常小的,並希望一些幫助,這一個。

回答

1

嘗試使用此方法獲得前一個和下一個URL:

this.router.events 
     .filter(event => event instanceof NavigationEnd) 
     .pairwise() 
     .subscribe((value: [NavigationEnd, NavigationEnd]) => { 

     let previousUrl = value[0].url; 
     let nextUrl = value[1].url; 
     }); 

進口使用:

import "rxjs/add/operator/filter"; 
import "rxjs/add/operator/pairwise"; 
+0

可以分享,我可以閱讀更多關於此的任何來源?你認爲這個代碼還可以用於下一個角度發佈嗎? – Teebo