2016-07-27 15 views
0

Ich weiß, dass dies eine gut gestellte Frage ist, aber meine "googleing" Fähigkeiten sind nicht gut genug, um mich zu bekommen, was ich will.ui.router zeigt die Seite nicht an [verschachtelte Ansicht]

So habe ich eine Seite mit ng-view, dass die Haupt index.html ist

<div class="row" style="margin-top: 70px;" ui-view></div> 

Jetzt habe ich mit einer Vorlage URL student.html Blick haben

<div class="col-md-10 col-md-offset-1" ng-controller="Controller_Parent"> 
<div ng-cloak> 
    <md-tabs md-dynamic-height md-border-bottom> 
     <md-tab label="View Profile" ui-view="student.profile"> 
     </md-tab> 
     <md-tab label="View Results" ui-view="student.result"> 
     </md-tab> 
     <md-tab label="View Attendance" ui-view="student.attendance"> 
     </md-tab> 
    </md-tabs> 
</div> 
</div> 

Wie der Code schlägt vor, dass in der Controller_A ich drei Ansichten (Unteransichten, um korrekt zu sein) möchte, die jeweils eine eigene Vorlage haben.

Die Routing-Code ist dies:

app.config(function($stateProvider, $urlRouterProvider) {  
    $urlRouterProvider.otherwise('/'); 
    $stateProvider 
    .state('home', { 
     url: '/', 
     templateUrl: 'templates/login.html', 
    }).state('student',{ 
     url:'/student', 
     views:{ 
      '@':{ 
       templateUrl: 'templates/student.html', 
      }, 
      '[email protected]':{ 
       templateUrl:'templates/student/profile.html' 
      }, 
     } 
    }); 
}); 

Was chages sollte ich diese Idee Arbeit machen machen. Ich habe die Tutorials durchgearbeitet und leider funktioniert keiner von ihnen ähnlich oder ich schaue in den falschen Raum.

In Erwartung Ihrer Eingabe. Grüße!

PS: keine JS Fehler

+0

Sind Sie ändern Ihre Zustand 'student' Präfix sollte? Neben der Verwendung von ng-Controller in Ihrem HTML. – krutkowski86

+0

Ja. Dies ist eine Dashboard-Seite (student.html), so dass es um Student über Login-Seite weitergeleitet wird –

+0

@ krutkowski86 btw ich abstrakte Student Klasse hinzugefügt, auf der eckigen gibt den Fehler Fehler: Kann nicht in den abstrakten Zustand "Student" –

Antwort

1

einen Blick auf https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views#view-names---relative-vs-absolute-names geworfen haben. Es scheint, dass Sie Ansichtsnamen wie student.profile mit der referenzierenden Syntax ([email protected]) mischen. Versuchen Sie also, die student. in Ihrer Vorlage wegzulassen.

Auch sollten Sie Ihren Controller in dem Zustand config (wahrscheinlich mit einem gemeinsamen übergeordneten Zustand) statt die Vorlage direkt ...

+0

Probieren Sie es einfach aus. Funktioniert immer noch nicht. Muss ich $ state.transition oder eine andere Art aufrufen? –

1

Ich habe gemacht jsfiddle registrieren, die Ihren Code ähnlich ist und es funktioniert. Der wesentliche Unterschied besteht darin, dass Sie keine verschachtelten Ansichten innerhalb ui-Ansicht Richtlinie mit student.

http://jsfiddle.net/irhabi/3ozfxmfx/

<md-tab label="View Profile" ui-view="profile"></md-tab> 
<md-tab label="View Results" ui-view="result"></md-tab> 
<md-tab label="View Attendance" ui-view="attendance"></md-tab> 
+0

Nein. @ajaegle sagte das gleiche und immer noch nicht funktioniert. Keine Ansicht oder Fehler. –

+0

Fügen Sie dies zu Ihrer App hinzu, wenn Sie UI-Router-Fehler sehen möchten. .run (Funktion ($ rootScope, $ state, $ stateParams) { $ rootScope. $ On ('$ stateChangeError', console.log.bind (Konsole)); }) – krutkowski86

+0

nein. Keine Fehler . –

Verwandte Themen