Текущие документы говорят только о получении параметров маршрута, а не фактических сегментов маршрута.
Например, если я хочу найти родителя текущего маршрута, как это возможно?
angular
angular2-routing
pdeva
источник
источник
window.location.pathname
window.location
том, что если в будущем они захотят реализовать рендеринг на стороне сервера, они столкнутся с некоторыми трудностями, посколькуwindow
их нет на сервере Node.js, но им нужно использовать стандартные методы Angular для доступа к маршруту. и они будут хорошо как на сервере, так и в браузере.Ответы:
Новый маршрутизатор V3 имеет свойство url.
источник
this.router.events.filter((event: any) => event instanceof NavigationEnd).subscribe(event => { console.log('this is what your looking for ', event.url); });
. Убедитесь, что вы импортируетеimport { Router, NavigationEnd } from '@angular/router';
Угловой RC4:
Вы можете импортировать
Router
из@angular/router
Затем введите его:
Затем назовите его параметром URL:
источник
Введите
Location
ваш компонент и прочитайте.location.path();
Вам нужно добавитьВам необходимо добавитьROUTER_DIRECTIVES
куда-нибудь, чтобы Angular мог разрешитьLocation
.import: [RouterModule]
в модуль.Обновить
В маршрутизаторе V3 (RC.3) вы можете ввести
ActivatedRoute
и получить доступ к более подробной информации, используя егоsnapshot
свойство.или
См. Также приемник событий маршрутизатора Angular 2
источник
navigate
методу вместе с (добавленным) именем дочернего маршрута, к которому я хочу перейти.MyTrackingService
объяснение в stackoverflow.com/a/34548656/217408 позволит получить доступ к этим значениям.canActivate()
метода, чтобы я мог перенаправить на страницу входа в систему, а затем перенаправить обратно на исходный маршрут после аутентификации пользователя?для нового роутера> = RC.3
Лучший и простой способ сделать это!
источник
Использовать этот
И в
main.ts
импортеРЕДАКТИРОВАТЬ
Современный способ
источник
/
.Для тех, кто все еще ищет это. На Angular 2.x есть несколько способов сделать это.
Ссылки:
источник
Чтобы получить сегменты маршрута:
источник
Вы можете попробовать с
Альтернативные способы
window.location.pathname
который дает имя пути.источник
Чтобы надежно получить полный текущий маршрут, вы можете использовать это
источник
Родной
window
объект тоже работает нормальноПРИМЕЧАНИЕ: НЕ ИСПОЛЬЗУЙТЕ ЭТО В СЕРВЕРЕ
источник
короткая версия, если у вас есть импортированный маршрутизатор, то вы можете просто использовать что-то вроде
this.router.url === "/ search"
еще сделать следующее
1) Импортируйте роутер
2) Объявить свою запись в конструкторе
3) Используйте его значение в вашей функции
Ответ @victor помог мне, это тот же ответ, что и у него, но с небольшой детализацией, так как это может помочь кому-то
источник
источник
В Angular2 Rc1 вы можете внедрить RouteSegment и передать их методом naviagte.
источник
С Angular 2.2.1 (в проекте angular2-webpack-starter) это работает так:
В шаблоне AppComponent вы можете использовать, например, {{activeUrl}}.
Это решение основано на коде RouterLinkActive.
источник
угловой 2 рк2
источник
Вот что у меня работает в Angular 2.3.1.
Это
data
объект, и нам нужноurl
свойство, содержащееся в этом объекте. Таким образом, мы фиксируем это значение в переменной и можем использовать эту переменную на нашей HTML-странице. Например, я хочу показывать div только тогда, когда пользователь находится на домашней странице. В этом случае мой URL-адрес маршрутизатора будет/home
. Таким образом, я могу написать div следующим образом:источник
У меня была такая же проблема с использованием
Я получаю текущий маршрут с параметрами запроса. Обходной путь, который я сделал, использовал это вместо этого:
Не очень хорошее решение, но полезно.
источник
Вы можете использовать,
ActivatedRoute
чтобы получить текущий маршрутизаторОригинальный ответ (для версии RC)
Я нашел решение для AngularJS Google Group, и это так просто!
Вот оригинальный ответ
https://groups.google.com/d/msg/angular/wn1h0JPrF48/zl1sHJxbCQAJ
источник
url
теперь это уже не URL и строка, а aComponentInstruction
.источник
Для ваших целей вы можете использовать
this.activatedRoute.pathFromRoot
.С помощью pathFromRoot вы можете получить список родительских URL-адресов и проверить, соответствует ли необходимая часть URL-адреса вашему условию.
Для получения дополнительной информации, пожалуйста, проверьте эту статью http://blog.2muchcoffee.com/getting-current-state-in-angular2-router/ или установите ng2-router-helper из npm
источник
Чтобы найти родителя текущего маршрута, вы можете получить его
UrlTree
от маршрутизатора, используя относительные маршруты:Затем, чтобы получить сегменты первичной розетки:
источник
На данный момент я получаю свой путь следующим образом -
Где
router
это примерActivatedRoute
источник
источник
источник
это просто, в angular 2 вам нужно только импортировать библиотеку Router следующим образом:
Затем в конструкторе компонента или службы вы должны создать его экземпляр следующим образом:
Затем в любой части кода, либо в функции, методе, конструкции, что угодно:
источник
Вы можете использовать в файле .ts
источник
это может быть ваш ответ, используйте метод params активированного маршрута, чтобы получить параметр из URL / маршрута, который вы хотите прочитать, ниже приведен фрагмент демонстрации
источник
источник
Если вам нужен доступ к текущему URL, обычно вам нужно подождать, пока NavigationEnd или NavigationStart что-то предпримут. Если вы просто подписываетесь на события маршрутизатора, подписка выдаст много событий в жизненном цикле маршрута. Вместо этого используйте оператор RxJS, чтобы фильтровать только необходимое событие. Благоприятный побочный эффект этого теперь у нас есть более строгие типы!
источник
Я столкнулся с проблемой, когда мне понадобился путь URL-адреса, когда пользователь перемещается по приложению или получает доступ к URL-адресу (или обновляет определенный URL-адрес) для отображения дочерних компонентов на основе URL-адреса.
Более того, я хочу Observable, который можно использовать в шаблоне, поэтому router.url не был опцией. Также нет подписки router.events, потому что маршрутизация запускается до инициализации шаблона компонента.
Надеюсь, это поможет, удачи!
источник