我有一个非常简单的Angular 2应用程序,我正在尝试导航到页面的hrefs。我查看了Angular2 navigate to anchor on another page之类的不同问题或像https://github.com/angular/angular/issues/6595这样的github问题,我最终得到了一个工作解决方案,在我的组件中有这段代码:
constructor(router: Router){
router.events.subscribe(s => {
if (s instanceof NavigationEnd) {
const tree = router.parseUrl(router.url);
if (tree.fragment) {
const element = document.querySelector("#" + tree.fragment);
if (element) { element.scrollIntoView(element); }
}
}
});
}
工作绝对正常但是如果我想再次使用相同的href它不起作用并且页面不会导航到锚点。我的问题是订阅是否需要放在其他地方,或者我是否需要告诉我的组件不要取消订阅(猜猜这是发生了什么?)?