Angular 1.5 компонентная привязка к маршрутизатору
Я пытаюсь переключить проект 1.5x на компоненты и использовать новый компонент-маршрутизатор. У меня проблема с программным доступом к $router
в паре компонентов, которые не находятся внутри директивы. В основном у меня есть компоненты заголовка и боковой панели, которые должны быть в состоянии сделать $router.navigvate
, но используя привязки: {$router: "<"}
дает мне неопределенное $router
,
Я думаю, что мне просто нужно немного реструктурировать приложение, но я не уверен, как это сделать.
В настоящее время в моем Index.html я определил ng-app в теле, а затем в нем основной модуль приложения (<app></app>
). У моего основного компонента приложения есть шаблон с моей "главной страницей".
Так что app.html имеет <header>
составная часть, <sidebar>
компонент, а затем <ng-outlet>
для основного контента. С UI-Router я просто использовал службу $state в контроллерах заголовка / боковой панели, чтобы найти активное состояние или перейти в новое состояние.
С компонентом router я не могу понять, как получить $router в контроллеры заголовка / боковой панели.
Есть идеи?
1 ответ
Используйте $rootRouter в контроллере
function controller($rootRouter){
$rootRouter.navigate(["someComponent"])
or $rootRouter.navigateByUrl("/url")
}