import { ActivatedRoute } from '@angular/router';
constructor(private route: ActivatedRoute) { }
queryParams: any; queryParamsSub: any;
this.queryParamsSub = this.route.queryParams.subscribe(params => { this.queryParams = params; });
ngOnDestroy() { this.queryParamsSub.unsubscribe(); }
这样,queryParams对象中的更改现在可以通过订阅和取消订阅queryParamsSub来检查。例如,在ngAfterViewInit中添加以下代码:
ngAfterViewInit() { this.queryParamsSub = this.route.queryParams.subscribe(params => { if (this.queryParams != params) { console.log('queryParams have changed!'); } }); }
现在,每当queryParams更改时,该方法都会在ngOnDestroy之前被调用,而不是之后。