在混合模式下使用来自Angular组件的路由

时间:2019-06-21 11:49:42

标签: angularjs angular routing hybrid

我在混合模式下使用AngularJS 1.5和Angular 7。如何更改Angular组件中的URL?我试图按如下方式访问当前网址:

constructor(private router: Router, private route: ActivatedRoute) {
    console.log(this.route.snapshot.queryParams);

}

查询参数始终为空。在父AngularJS组件中,我使用$location服务获取查询参数。 如果我尝试使用路由器更改路由,则会显示无效路由。如何更改Angular组件中的当前URL?目前,我正在发布一个事件,该事件又由可以使用$location服务的父AngularJS组件捕获。

2 个答案:

答案 0 :(得分:0)

使用以下方法获取查询参数:

constructor(private router: Router, private route: ActivatedRoute) {
    this.route.queryParams.subscribe(params => {
     console.log(params);
   });
}

导航到其他URL(如您所指定的,即更改url),然后使用:

this.router.navigate(['/someurl']);

答案 1 :(得分:0)

我设法通过升级AngularJS $ location服务来做到这一点:

@Injectable()
export class LocationService {

    search(queryParameter?: string, value?: string): string | any {
        return undefined;
    }
}

在AppModule中执行以下操作

{provide: LocationService, useFactory: (i: any) => i.get('$location'), deps: ['$injector']},