Я использую последнюю версию angular5. У меня есть следующие закодированные маршруты (обратите внимание, что фрукты и овощи НЕ являются параметрами:
/fruits/item
/veggies/basket
Обратите внимание, что fruit - это родительский маршрут, и у меня есть несколько дочерних маршрутов в массиве (item - только один из них). «овощи» также является родительским маршрутом. "корзина" - это один из "дочерних маршрутов" в массиве маршрута veggies.
Как я могу использовать «ActivatedRoute» и как получить доступ к первому «фруктовому» или «овощному» сегменту маршрута? Я хочу проверить это и выйти в консоль.
Предположим, что активированный маршрут уже введен в переменную "route".
Ищу что-то вроде этого псевдокода (если он правильный)
showRouteRoot() {
console.info(this.route.getFirstSegmentNameInRoute())
// expected output is fruits OR veggies.
// If this can't be done in one line of code,
// multiple lines is an acceptable answer
}
Я пытался:
console.info(this.route.snapshot.url.split('/'));
Это создает проблемы.
console.info(this.route.url)
Это показывает мне некую анонимную тему
console.info(this.route.parent.url)
Это показывает мне BehaviorSubject
Это не выводит из системы первую часть, а только конец пути URL.





Сделать это можно так:
let url = this.activatedRoute.snapshot.url.join().split(',')
console.info(url[0]);
Если вы хотите получить родительский маршрут, посмотрите здесь.
я получаю разделение не является свойством this.activatedRoute.snapshot.url
он по-прежнему говорит, что свойство "split" не существует в urlsegment. Это угловой 5.
Так что там написано только «предмет» или «корзина». Здесь не сказано «фрукты» или «овощи». Как я определил маршруты, есть ли родительский маршрут (фрукты или овощи), и у меня есть массив «дочерних» маршрутов под ним.
Посмотрите на URL-адрес в моем ответе, чтобы получить родительский маршрут. Это должно вам помочь.
ActivatedRoute предоставил член pathFromRoot, который позволяет разработчикам получать полные активные маршруты от root, см. в документы.
В вашей ситуации вы можете использовать нижеприведенный блок кода для этого:
this.activatedRoute.pathFromRoot[1].url.subscribe(val => console.info(val[0].path));
Обратите внимание, что в настоящее время результат pathFromRoot содержит пустой маршрут (первый элемент ActivatedRoute[]), что означает путь ''.
вы пробовали
console.info(route.snapshot.url[0].path);?