在我的导航服务中,我想在一个订阅中订阅当前选择的路线 url 和数据。
要订阅路由 url,我会写:
constructor( router: Router, activatedRoute: ActivatedRoute ) {
router.events.pipe(
filter( event => event instanceof NavigationEnd ),
map( () => activatedRoute ),
map( r => {
while ( r.firstChild ) {
r = r.firstChild;
}
return r;
} ),
switchMap( route => route.url ),
).subscribe( u => {
// ... do something with u
} );
}
现在我还想订阅当前路由的 data-Observable。如何将 observable 拆分为 url-part 和 data-part 并为两个 observables 订阅一次?
我试过zip(), partition(),combineLatest()但没有成功。还是我应该使用concatMap()?