我刚刚将我的angualr-cli项目升级到Angualr 4.0,以及本地的Typescript@2.3.4,我的 app.component.ts 中的以下代码在升级前工作正常:
现在,事件中不再提供网址,
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
})
如何获得' url'来自' e'无需操纵' e.toString()'返回的字符串。的NavigationStart类。
当用户导航时,是否有不同的方法将当前和以前的路由作为字符串从路由器中获取?,请就此提出建议。
我的理解很少,并希望得到一些帮助。
答案 0 :(得分:3)
尝试此操作以获取上一个和下一个网址:
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";