Angular 4/5 - 路线 paramMap 与 params

标签 angular typescript

我试图在我的 Angular 5 应用程序中获取 URL 参数,我找到了两种方法:

1) 使用paramMap

    ngOnInit() {
      this.hero$ = this.route.paramMap
        .switchMap((params: ParamMap) =>
          this.service.getHero(params.get('id')));
    }

2) 使用参数

    ngOnInit() {
      this.sub = this.route.params.subscribe(params => {
        this.id = +params['id'];
      });
    }

有区别吗?哪一种是最佳做法?

最佳答案

2021 年 9 月更新

以下答案不再正确,Angular team says :

There are no current plans to remove params or queryParams and there's no benefit to advising against their use.

过时的答案

根据文档:

Two older properties are still available. They are less capable than their replacements, discouraged, and may be deprecated in a future Angular version.

params — An Observable that contains the required and optional parameters specific to the route. Use paramMap instead.

简单高效!

关于Angular 4/5 - 路线 paramMap 与 params,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47809357/

相关文章:

javascript - Java 中的 Google Cloud EndPoint 使用 Typescript 从 Angular 2 (Angular-cli) 进行调用

javascript - 在 Angular2 应用程序中使用字符串插值从数组中提取值

typescript - 如何使用cdk获取账户id

angular - 无法使用 typescript 和 Angular 为 Jasmine 添加自定义匹配器

angular - 通过 Angular 应用程序收听 Firebase 云消息传递时出现问题

angular - 防止按钮双击ionic2

javascript - 在 TypeScript 中引用推断类型

如果使用 formControlName, Angular Material 2 占位符会重叠值

javascript - 在 TypeScript 中解构参数时找不到错误

angular - 如何在 ag-grid 上显示和使用单选按钮?