@@ -1390,30 +1390,38 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory) {
13901390 } ) ] ;
13911391 if ( inherited ) promises . push ( inherited ) ;
13921392
1393- // Resolve template and dependencies for all views.
1394- forEach ( state . views , function ( view , name ) {
1395- var injectables = ( view . resolve && view . resolve !== state . resolve ? view . resolve : { } ) ;
1396- injectables . $template = [ function ( ) {
1397- return $view . load ( name , { view : view , locals : locals , params : $stateParams , notify : options . notify } ) || '' ;
1398- } ] ;
1399-
1400- promises . push ( $resolve . resolve ( injectables , locals , dst . resolve , state ) . then ( function ( result ) {
1401- // References to the controller (only instantiated at link time)
1402- if ( isFunction ( view . controllerProvider ) || isArray ( view . controllerProvider ) ) {
1403- var injectLocals = angular . extend ( { } , injectables , locals , result ) ;
1404- result . $$controller = $injector . invoke ( view . controllerProvider , null , injectLocals ) ;
1405- } else {
1406- result . $$controller = view . controller ;
1407- }
1408- // Provide access to the state itself for internal use
1409- result . $$state = state ;
1410- result . $$controllerAs = view . controllerAs ;
1411- dst [ name ] = result ;
1412- } ) ) ;
1413- } ) ;
1393+ function resolveViews ( ) {
1394+ var viewsPromises = [ ] ;
1395+
1396+ // Resolve template and dependencies for all views.
1397+ forEach ( state . views , function ( view , name ) {
1398+ var injectables = ( view . resolve && view . resolve !== state . resolve ? view . resolve : { } ) ;
1399+ injectables . $template = [ function ( ) {
1400+ return $view . load ( name , { view : view , locals : dst . globals , params : $stateParams , notify : options . notify } ) || '' ;
1401+ } ] ;
1402+
1403+ viewsPromises . push ( $resolve . resolve ( injectables , dst . globals , dst . resolve , state ) . then ( function ( result ) {
1404+ // References to the controller (only instantiated at link time)
1405+ if ( isFunction ( view . controllerProvider ) || isArray ( view . controllerProvider ) ) {
1406+ var injectLocals = angular . extend ( { } , injectables , dst . globals ) ;
1407+ result . $$controller = $injector . invoke ( view . controllerProvider , null , injectLocals ) ;
1408+ } else {
1409+ result . $$controller = view . controller ;
1410+ }
1411+ // Provide access to the state itself for internal use
1412+ result . $$state = state ;
1413+ result . $$controllerAs = view . controllerAs ;
1414+ dst [ name ] = result ;
1415+ } ) ) ;
1416+ } ) ;
1417+
1418+ return $q . all ( viewsPromises ) . then ( function ( ) {
1419+ return dst . globals ;
1420+ } ) ;
1421+ }
14141422
14151423 // Wait for all the promises and then return the activation object
1416- return $q . all ( promises ) . then ( function ( values ) {
1424+ return $q . all ( promises ) . then ( resolveViews ) . then ( function ( values ) {
14171425 return dst ;
14181426 } ) ;
14191427 }
0 commit comments