2016-02-05 4 views
8

Ich begann die neue ui-Router v1.0.0alpha0 mit AngularJS v1.4.0 zu testen, aber ich bin immer diese Fehlermeldung:ui-Router v1.0.0alpha0 - Typeerror: kann Eigenschaft 'creationContext' gelesener undefined

TypeError: Cannot read property 'creationContext' of undefined 
    at http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:1573:65 
    at curried (http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:128:24) 
    at http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:130:21 
    at Array.filter (native) 
    at matchingConfigPair (http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:1587:48) 
    at Array.map (native) 
    at $View.sync (http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:1597:53) 
    at $View.register [as registerUiView] (http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:1605:15) 
    at http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:3741:37 
    at invokeLinkFn (http://localhost:1828/lib/angular/angular.js:8604:9) <!-- uiView: subjects.intro --> 

Hier ist meine app.config:

var home = { 
     name: 'home', 
     template: '<div data-ui-view></div>', 
     url: '/home/' 
    }; 

    var homeSubjects = { 
     name: 'home.subjects', 
     resolve: { 
      getSubjects: ['subjectService', 
       (sus: ISubjectService) => { 
        console.log("getSubjects"); 
        sus.getSubjects(); 
        return true; 
       }] 
     }, 
     url: 'subjects', 
     views: { 
      '': { 
       templateUrl: 'app/subjects/partials/subjects.html', 
      }, 
      '[email protected]': { 
       templateUrl: 'app/subjects/partials/subjects_intro.html', 
      }, 
      '[email protected]': { 
       templateUrl: 'app/subjects/partials/subjects_auth.html', 
      } 
     } 
    }; 

hat jemand eine Ahnung, was dieses Problem könnte verursachen, oder wie ich vorgehen kann mehr über das Problem, um herauszufinden, was ich nicht in die 0,2 erhalten hat Version des Routers?

Dank

Antwort

2

Sie haben diesen Fehler, weil es versucht, eine ui-view namens subjects als Eltern zu finden.

Imo ist es einfacher, nur dies zu tun:

'[email protected]': { 

Ziele Absolut die 'info' Sicht im Kontext der 'home.details'.

So können Sie die folgende ui-Ansicht innerhalb app/subjects/partials/subjects.html haben:

<div ui-view='intro'/> 

Allerdings, wenn Sie diesen Kommentar wollen Punkte in der ui-view Namen tun ui-routersource vom lesen.

/* 
* If the ViewConfig's target ui-view name is a segmented name (with dots), then a ui-view matches if: 
* - There exists a parent ui-view where: 
* - the parent ui-view's name matches the first segment (index 0) of the ViewConfig's target name 
* - the parent ui-view's context matches the ViewConfig's anchor 
* - And the remaining segments (index 1..n) of the ViewConfig's target name match the tail of the ui-view's fqn 
*/ 

Also in Ihrem Fall denke ich, dies gilt:

'$default.in[email protected]': { 
+0

Dank Ich werde dies untersuchen und meine Ergebnisse aktualisieren. –

+0

@ Marilou ein Feedback zu diesem Thema? – koox00

+0

Entschuldigung für die Verzögerung bei der Beantwortung. Versuche, viele Fehler zu beheben :-) Ich denke, es ist jetzt in Ordnung. Werde ein paar verschiedene Dinge ausprobieren und eine weitere Frage stellen, wenn es noch ein Problem ist. Vielen Dank –

0

Da Sie kein JSFiddle Beispiel zur Verfügung gestellt haben, ist es ein bisschen schwierig, einen Fehler im Code zu bemerken. Hier ist jedoch ein similar question, wo die Lösung zuerst den übergeordneten Zustand hinzufügt. Vielleicht verwenden Sie das gleiche Konzept.

0

Zuerst würde ich versuchen, das Komma hier entfernen:

templateUrl: 'app/subjects/partials/subjects_auth.html',

..und wenn das nicht tun Ich würde versuchen,

url: '/home/' zu ändern: url: '/home'

und

url: 'subjects' zu: url: '/subjects'

Wenn es immer noch ein Problem, ich würde:

  • starten nachdachte, wie Ihre Zustände werden von diesen Variablen erzeugt werden - I nicht sehen, wo sie gefüttert werden $stateProvider.
  • Überprüfen Sie, dass der übergeordnete Status vor dem untergeordneten Status erstellt wird.
Verwandte Themen