Определите переменную с параметром маршрута.Но оставьте его неопределенным, если параметр не найден - PullRequest
0 голосов
/ 22 марта 2019

У меня есть компонент Angular 7, где я получаю значение параметра маршрута:

export class PostComponent implements OnInit {

  postId: number;

  constructor(private route: ActivatedRoute) { }

  ngOnInit() {

    console.log(this.postId);

    this.route.paramMap.subscribe(parameters => {
      this.postId = +parameters.get('postId');
    })

    console.log(this.postId);

  }

}

В первом журнале консоли postId не определен, как ожидалось.

На второй консолиЖурнал postId равен 0, так как postId не найден в URL.

Я бы хотел, чтобы postId оставался неопределенным, если postId не найден в URL.

КакМогу ли я сделать это?

1 Ответ

2 голосов
/ 22 марта 2019

Вы можете сделать что-то вроде этого:

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

@Component({
  selector: 'app-post-detail',
  templateUrl: './post-detail.component.html',
  styleUrls: ['./post-detail.component.css']
})
export class PostDetailComponent implements OnInit {

  constructor(private route: ActivatedRoute) { }

  ngOnInit() {
    this.route.params.subscribe(params => {
      const postId = params['postId'];
      const postIdToUse = postId ? +postId : undefined;
      console.log('Got the PostId as :' , postIdToUse);
    });
  }

}

Вот Рабочий образец StackBlitz для вашей ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...