Angular Получить последнюю часть URL

Я хочу получить последнюю часть своего URL-адреса, например, из 9X_angular4 /item/:id/edit. Я хочу получить edit или /edit.

Я нашел this Question here, но это 9X_angular4.x не работает, потому что я хочу запустить 9X_angular этот код в родительском компоненте, и весь 9X_angularjs2 URL-адрес, который я получаю из этого кода, равен 9X_angularjs2 /item/:id.

Как мне получить от него последнюю часть?

16
0
4
Общее количество ответов: 4

Ответ #1

Ответ на вопрос: Angular Получить последнюю часть URL

У меня есть решение для получения последней 9X_angularjs2 части URL

url = '/item/:id/edit'
url.split('/').pop();

Объясните:

  1. .split('/') означает разделение строки, которая разделяется символом '/' на массив подстрок
  2. .pop() означает удаление последнего элемента массив и возвращает этот элемент
  3. .split('/').pop() означает разделение строка, разделенная символом '/' на массив подстрок, затем удаляет последний элемент массива и возвращает этот элемент

Надеюсь, это поможет

18
1

  • Это не удается, если к нему прикреплен параметр ст ...

Ответ #2

Ответ на вопрос: Angular Получить последнюю часть URL

Можно использовать интерфейс ActivedRoute, он 9X_angular4 содержит дерево состояний маршрутизатора в 9X_angular4.x памяти приложения angular.

Свойство Parent 9X_angular представляет родителя маршрута в дереве 9X_angular2 состояний маршрутизатора, в то время как 9X_angular свойство sanpshots - это текущий снимок 9X_angular4 маршрута, а url - это наблюдаемые сегменты 9X_angularjs2 URL-адреса и совпадающие с этим маршрутом.

Шаг 1: импорт 9X_angular4 ActivatedRoute

    import { ActivatedRoute } from '@angular/router';

Шаг 2. Добавьте ActivatedRoute 9X_angular4.x в конструктор.

    constructor(private activatedRoute: ActivatedRoute) { }

Шаг 3: вызовите его в ловушке жизненного 9X_angular4.x цикла Oninit

      constructor(private route: ActivatedRoute){}
        
           ngOnInit() {
              this.route.parent.snapshot.url[2].path;
           }

13
0

Ответ #3

Ответ на вопрос: Angular Получить последнюю часть URL

Поскольку вы хотите, чтобы часть URL находилась 9X_angular2 в родительском компоненте, вам нужно подождать, пока 9X_angular4 не произойдет переход.

Получить последнюю часть URL от родительского компонента

router.events
  .pipe(
    filter(event => event instanceof NavigationEnd),
    map((event: NavigationEnd) => event.url)
  )
  .subscribe(url => {
    const lastUrlSegment = url.split('?')[0].split('/').pop()
  });

Где router - это внедренный 9X_angular2 Angular Router service. Здесь url.split('?')[0] возвращает часть URL без параметров 9X_angularjs2 запроса, если они существуют, тогда split('/').pop() возвращает 9X_angular4.x последний сегмент URL без символа /.

Если 9X_angular вы хотите

Получить последнюю часть URL из дочернего компонента

Вы можете делать это синхронно

const lastUrlSegment = router.url.split('?')[0].split('/').pop()

Где 9X_angularjs2 router - это внедренный Angular Router service. Обратите внимание, что 9X_angular2 под дочерним компонентом я подразумеваю 9X_angular4.x тот, который отображается последним сегментом 9X_angularjs2 URL, который мы ищем.

5
0

Ответ #4

Ответ на вопрос: Angular Получить последнюю часть URL

Use the below code.

My url is - localhost:4200/home/user/address

export class HomeComponent implements OnInit {

  constructor(private router: Router) {
    console.log(this.router.url)
    console.log(this.router.url.split('/')[0]);
    console.log(this.router.url.split('/')[1]);
    console.log(this.router.url.split('/').pop());
  }
}

Output -
>home/user/address
>home
>user
>address

9X_angular

1
0