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