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
.
Как мне получить от него последнюю часть?
Ответ #1
Ответ на вопрос: Angular Получить последнюю часть URL
У меня есть решение для получения последней 9X_angularjs2 части URL
url = '/item/:id/edit' url.split('/').pop();
Объясните:
.split('/')
означает разделение строки, которая разделяется символом '/' на массив подстрок.pop()
означает удаление последнего элемента массив и возвращает этот элемент.split('/').pop()
означает разделение строка, разделенная символом '/' на массив подстрок, затем удаляет последний элемент массива и возвращает этот элемент
Надеюсь, это поможет
- Это не удается, если к нему прикреплен параметр ст ...
Ответ #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; }
Ответ #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, который мы ищем.
Ответ #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
-
24
-
1
-
18
-
11
-
6
-
5
-
4
-
18
-
24
-
4
-
2
-
1
-
25
-
14
-
23
-
4
-
10
-
10
-
3
-
15
-
15
-
7
-
8
-
6
-
2
-
9
-
13
-
6
-
6
-
4
-
2
-
2
-
1
-
8
-
4
-
23
-
1
-
5
-
21
-
2
-
5
-
4
-
2
-
6
-
11
-
16
-
1
-
4
-
5
-
3