【问题标题】:Get data from URL in Angular 5从 Angular 5 中的 URL 获取数据
【发布时间】:2019-02-21 05:11:38
【问题描述】:

我在网址栏中输入了一个链接。

http://localhost:4200/reset-password-action/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9/5

我想从 url 获取 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 和 5。

我的 app-routing.module.ts 文件中有它。

const routes: Routes = [
  { path: 'reset-password-action/:token/:user_id', component: NewPasswordComponent }
];

我需要一个简单的语法来获取这些数据。

【问题讨论】:

标签: angular routing angular-routing


【解决方案1】:

首先,您想从哪里获取这些数据? 如果你想在同一个组件中,我认为它是 NewPasswordComponent

import {ActivatedRoute} from '@angular/router';
import {OnInit, Component} from '@angular/core';

@Component({...})
export class NewPasswordComponent implements OnInit {
  constructor(private route: ActivatedRoute) {}

  ngOnInit() {
    console.log(this.route.snapshot.params.token);
    console.log(this.route.snapshot.params.user_id);
  } 
}

或者你也可以像下面这样:

 constructor(private route: ActivatedRoute) {}

    ngOnInit() {
      this.route.params.subscribe(event => {
      this.token = event.token;
      this.user_id = event.user_id;
     });
    }

【讨论】:

    【解决方案2】:

    你需要先导入激活的路由然后使用这个

    import {Router, ActivatedRoute} from '@angular/router';
    class ABC {
        id: any;
        token: any;
        constructor(private activatedRoute: ActivatedRoute) {}
        ngOnInit() {
            this.activatedRoute.params.subscribe(params => {
                if (typeof params['id'] !== 'undefined') {
                    this.id = params['id'];
                } else {
                    this.id = '';
                }
                if (typeof params['token'] !== 'undefined') {
                    this.id = params['token'];
                } else {
                    this.id = '';
                }
            });
        }
    }
    

    【讨论】:

      【解决方案3】:

      您可以使用 ActivatedRoute 获取这样的查询参数。这是一个例子::

      import {Router, ActivatedRoute, Params} from '@angular/router';
      import {OnInit, Component} from '@angular/core';
      
      @Component({...})
      export class MyComponent implements OnInit {
       queryParamsStatus ='';
      
        constructor(private activatedRoute: ActivatedRoute) {}
      
        ngOnInit() {
          // subscribe to router event
          this.activatedRoute.params.subscribe((params: Params) => {
              this.queryParamsStatus= params['status'];
              console.log(queryParamsStatus );
      
            });
          let tempRows = this.rows.filter(s => s.staus === this.queryParamsStatus);
        }
      
      }
      

      您可以通过简单地将状态替换为令牌或用户ID来获取令牌/用户ID。

      希望这会奏效。

      【讨论】:

        猜你喜欢
        • 2018-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多