当前位置:  开发笔记 > 编程语言 > 正文

Angular 2检查url中是否存在查询参数

如何解决《Angular2检查url中是否存在查询参数》经验,为你挑选了2个好方法。

我需要检查当前url是否有查询字符串.

网址可以

http://localhost:4200/test?id=55555

要么

http://localhost:4200/test

我用过

this.route.queryParams
     .filter(params => 'id' in params)
     .map(params => params.id)
     .distinctUntilChanged()
     .subscribe(
     id=> {
                //check lead Id here
                console.log(id);
            }
     );

但这只适用于网址中有id的情况.不知道如何检查它是否存在.



1> ranakrunal9..:

您可以在订阅功能中直接检查它,如下所示:

this.route.queryParams.subscribe((params)=> {
  //check lead Id here
  if(params['id']){
    console.log(params['id']);
  } else {
    console.log('id not found in params')
  }
});



2> Mukyuu..:

我会说使用:

ngOnInit() {
 if (this.route.snapshot.queryParams['id']) {
      //do your stuff. example: console.log('id: ', this.route.snapshot.queryParams['id']);
 }
}

就足够了。不要忘记private route: ActivatedRoute在构造函数中初始化 import { ActivatedRoute } from '@angular/router';

因为您只需要检查它是否存在。如果这样做,您的工作就会发生,例如添加一个布尔值以检查是否已设置。如果它不存在,那么将不会发生任何事情。然后,如果您需要在组件中的其他位置进行操作,则可以稍后检查布尔值是否为true / false,具体取决于您之前的设置方式。


对于Angular 7:`this.route.snapshot.queryParamsMap.get('id')`
推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有