@@ -1390,30 +1390,38 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory) {
1390
1390
} ) ] ;
1391
1391
if ( inherited ) promises . push ( inherited ) ;
1392
1392
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
+ }
1414
1422
1415
1423
// 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 ) {
1417
1425
return dst ;
1418
1426
} ) ;
1419
1427
}
0 commit comments