需求:在angualr中,跳转页面之后,本页面的定时器无法关闭,仍在其他页面进行调用,因此使用以下监听路由的方法实现离开本页面就关闭定时器。
引入:
import { Router, NavigationStart, NavigationEnd } from '@angular/router';
import { filter } from 'rxjs/operators';
正文:
export class NewsListPage extends ScrollbasePage implements OnInit {
news$: Observable<any>;
constructor(
private routeInfo:ActivatedRoute,
private router: Router,
){ }
ngOnInit() {
this.router.events.pipe(//监听路由代码
filter(event => event instanceof NavigationEnd)
).subscribe((res: any) => {
//在离开本页面之后要处理的事件,我的是关闭定时器,定时器相关代码就不写了
clearInterval(this.setInterval);
});
}
}