2017-01-12 3 views
0

Ich habe Probleme mit verschachtelten Ansichten mit UI-Router. Zur Zeit kann ich eine Ebene tiefer gehen: /pages/:page durch folgende Maßnahmen:UI-Router und mehrfach verschachtelte Ansichten/Zustände?

.state('genius.pages', { 
    url: '/pages/:page', 
    views: { 
     '' : { 
      templateUrl: "public/views/pages/page.html", 
      controller: "pageController" 
     } 
    } 
}) 

Was ich will, dann zu tun ist im Wesentlichen /pages/:page/:subpage aber ich kann nicht die Unterseite zu erfassen scheinen. Ich habe versucht, folgendes zu tun, aber ohne viel Glück. Ich erhalte eine Fehlermeldung:

Cannot read property 'getName' of undefined

.state('genius.pages.subpages', { 
    url: '/pages/:page/:subpage', 
    views: { 
     '' : { 
      templateUrl: "public/views/pages/page.html", 
      controller: "pageController" 
     } 
    } 
}) 

In meinem pageController, ich bin $stateParams die Nutzung der Seite Parameter ($ stateParams.page) zu erfassen, so würde ich dann auch gerne die Unterseite param zugreifen tun $stateParams.subpage.

Was übersehe ich?

Antwort

0

Ich bin mir nicht sicher, ob dies der richtige Weg ist oder nicht, aber ich habe es funktioniert. Ich bin mir auch nicht sicher, ob ich die Dinge verkomplizieren würde. Zucken.

Das erste, was ich tat, war die url: '/pages/:page', Block vollständig zu entfernen. Dies machte /pages/:page/ Arbeit sowie /pages/:page/:subpage, die in meinem Buch OK ist.

Allerdings in meinem Modell, ich verlinkte auf Dinge wie /pages/:page ohne die nachfolgende / - damit würde es brechen. Ich habe einfach mein Modell aktualisiert, um die nachfolgende / einzuschließen, und ich war gut zu gehen.

Mein aktualisierten Zustand ist einfach:

.state('genius.pages', { 
    url: '/pages/:page/:subpage', 
    views: { 
     '' : { 
      templateUrl: "public/views/pages/page.html", 
      controller: "pageController" 
     } 
    } 
})