更改路由参数,而无需在 Angular 2 中重新加载
2022-08-30 01:59:39
我正在使用Angular 2,Google Maps等制作一个房地产网站,当用户更改地图的中心时,我会对API进行搜索,指示地图的当前位置以及半径。问题是,我想在不重新加载整个页面的情况下在URL中反映这些值。这可能吗?我发现了一些使用AngularJS 1.x的解决方案,但没有关于Angular 2的解决方案。
我正在使用Angular 2,Google Maps等制作一个房地产网站,当用户更改地图的中心时,我会对API进行搜索,指示地图的当前位置以及半径。问题是,我想在不重新加载整个页面的情况下在URL中反映这些值。这可能吗?我发现了一些使用AngularJS 1.x的解决方案,但没有关于Angular 2的解决方案。
从RC6开始,您可以执行以下操作来更改URL而不更改状态,从而保留您的路由历史记录
import {OnInit} from '@angular/core';
import {Location} from '@angular/common';
// If you dont import this angular will import the wrong "Location"
@Component({
selector: 'example-component',
templateUrl: 'xxx.html'
})
export class ExampleComponent implements OnInit {
constructor( private location: Location )
{}
ngOnInit() {
this.location.replaceState("/some/newstate/");
}
}
您可以使用基本上更改您的URL,而不会更改应用程序路由。location.go(url)
注意:这可能会导致其他影响,如从当前路由重定向到子路由。
相关问题,其中描述了不会发生任何变化的亲密关系。location.go
Router