@@ -186,8 +186,8 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
186
186
187
187
// $urlRouter is injected just to ensure it gets instantiated
188
188
this . $get = $get ;
189
- $get . $inject = [ '$rootScope' , '$q' , '$templateFactory ' , '$injector' , '$stateParams' , '$location' , '$urlRouter' ] ;
190
- function $get ( $rootScope , $q , $templateFactory , $injector , $stateParams , $location , $urlRouter ) {
189
+ $get . $inject = [ '$rootScope' , '$q' , '$view ' , '$injector' , '$stateParams' , '$location' , '$urlRouter' ] ;
190
+ function $get ( $rootScope , $q , $view , $injector , $stateParams , $location , $urlRouter ) {
191
191
192
192
var TransitionSuperseded = $q . reject ( new Error ( 'transition superseded' ) ) ;
193
193
var TransitionPrevented = $q . reject ( new Error ( 'transition prevented' ) ) ;
@@ -332,14 +332,7 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
332
332
// necessary. In addition to being available to the controller and onEnter/onExit callbacks,
333
333
// we also need $stateParams to be available for any $injector calls we make during the
334
334
// dependency resolution process.
335
- var $stateParams ;
336
- if ( paramsAreFiltered ) $stateParams = params ;
337
- else {
338
- $stateParams = { } ;
339
- forEach ( state . params , function ( name ) {
340
- $stateParams [ name ] = params [ name ] ;
341
- } ) ;
342
- }
335
+ var $stateParams = ( paramsAreFiltered ) ? params : filterByKeys ( state . params , params ) ;
343
336
var locals = { $stateParams : $stateParams } ;
344
337
345
338
// Resolves the values from an individual 'resolve' dependency spec
@@ -366,21 +359,21 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
366
359
// Resolve template and dependencies for all views.
367
360
forEach ( state . views , function ( view , name ) {
368
361
// References to the controller (only instantiated at link time)
369
- var $view = dst [ name ] = {
362
+ var _ $view = dst [ name ] = {
370
363
$$controller : view . controller
371
364
} ;
372
365
373
366
// Template
374
367
promises . push ( $q
375
- . when ( $templateFactory . fromConfig ( view , $stateParams , locals ) || '' )
368
+ . when ( $view . load ( name , { view : view , locals : locals , notify : false } ) || '' )
376
369
. then ( function ( result ) {
377
- $view . $template = result ;
370
+ _ $view. $template = result ;
378
371
} ) ) ;
379
372
380
373
// View-local dependencies. If we've reused the state definition as the default
381
374
// view definition in .state(), we can end up with state.resolve === view.resolve.
382
375
// Avoid resolving everything twice in that case.
383
- if ( view . resolve !== state . resolve ) resolve ( view . resolve , $view ) ;
376
+ if ( view . resolve !== state . resolve ) resolve ( view . resolve , _ $view) ;
384
377
} ) ;
385
378
386
379
// Once we've resolved all the dependencies for this state, merge
@@ -422,6 +415,15 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory, $
422
415
}
423
416
return true ;
424
417
}
418
+
419
+ function filterByKeys ( keys , values ) {
420
+ var filtered = { } ;
421
+
422
+ forEach ( keys , function ( name ) {
423
+ filtered [ name ] = values [ name ] ;
424
+ } ) ;
425
+ return filtered ;
426
+ }
425
427
}
426
428
427
429
angular . module ( 'ui.state' )
0 commit comments