2016-05-13 14 views
1

Ich versuche ein 1.5x Projekt auf Komponenten umzustellen und den neuen Komponenten-Router zu verwenden. Ich habe ein Problem mit der programmgesteuerten Zugriff auf die $router in ein paar Komponenten, die nicht innerhalb einer Direktive sitzen. Grundsätzlich habe ich Header-und Sidebar-Komponenten, die $router.navigvate tun können, aber mit Bindungen: {$router: "<"} gibt mir eine undefinierte $router.

Ich denke, ich muss nur die App ein wenig umstrukturieren, aber ich bin mir nicht sicher, wie es geht.

Derzeit in meiner Index.html Ich habe ng-app für den Körper definiert, und dann das Haupt-App-Modul in diesem (<app></app>). Meine Haupt-App-Komponente hat eine Vorlage mit im Grunde meiner "Masterpage".

So app.html hat eine <header> Komponente, <sidebar> Komponente und dann <ng-outlet> für den Hauptinhalt. Mit UI-Router habe ich gerade den $ state-Dienst in den header/sidebar-Controllern benutzt, um den aktiven Zustand zu finden oder zu einem neuen Zustand zu navigieren.

Mit Komponente-Router kann ich nicht herausfinden, wie Sie den $ router in die Header/Sidebar-Controller bekommen.

Irgendwelche Ideen?

Antwort

2

Verwendung $ rootRouter in der Steuerung

function controller($rootRouter){ $rootRouter.navigate(["someComponent"]) or $rootRouter.navigateByUrl("/url") }

Verwandte Themen