Angular NavigationEnd.订阅route.snapshot

Angular NavigationEnd.订阅route.snapshot,angular,rxjs,angular-routing,ngrx,Angular,Rxjs,Angular Routing,Ngrx,大家好,我想知道你们能不能给我一些建议?我目前正在尝试获取一个URL并动态显示一个函数 this._mont.showMap(+this._route.snapshot.params['id'])); 每当我使用这行代码时,showMap()函数就会被当前索引捕获。我想使用NagivationEnd路由器事件获取下一个索引 this.router.events.filter((routerEvent) => routerEvent instanceof NavigationEnd)

大家好,我想知道你们能不能给我一些建议?我目前正在尝试获取一个URL并动态显示一个函数

this._mont.showMap(+this._route.snapshot.params['id']));
每当我使用这行代码时,showMap()函数就会被当前索引捕获。我想使用NagivationEnd路由器事件获取下一个索引

this.router.events.filter((routerEvent) => routerEvent instanceof NavigationEnd)
  .subscribe(() => this._mont.showMap(+this._route.snapshot.params['id']));
}

我想知道我是否做得正确,或者是否有更好的方法来解决这个问题?

虽然这不是一个完全错误的方法,但我建议订阅ActivatedRoute:
route.paramMap
。这样,只在id参数更改时调用函数,这比每次url更改时调用它更有效。 编辑:
您也可以直接从订阅结果中获取id(如
result=>result.get('id')
)。编辑2:使用
.get()
方法。

因此,类似于此的东西?this。_route.paramMap。订阅((params:ParamMap)=>this.\mont.showMap(+this.\route.snapshot.params['id']);更像是
this.\u route.paramMap.subscribe(params=>+params.data.get('id'))