1
1
/**
2
2
* State-based routing for AngularJS
3
- * @version v0.0.1 - 2013-02-25
3
+ * @version v0.0.1 - 2013-03-01
4
4
* @link
5
5
* @license MIT License, http://www.opensource.org/licenses/MIT
6
6
*/
@@ -199,7 +199,7 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory) {
199
199
// is also a good time to resolve view names to absolute names, so everything is a
200
200
// straight lookup at link time.
201
201
var views = { } ;
202
- forEach ( ! isDefined ( state . views ) ? { '' : state } : state . views , function ( view , name ) {
202
+ forEach ( isDefined ( state . views ) ? state . views : { '' : state } , function ( view , name ) {
203
203
if ( name . indexOf ( '@' ) < 0 ) name = name + '@' + state . parent . name ;
204
204
views [ name ] = view ;
205
205
} ) ;
@@ -388,9 +388,7 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory) {
388
388
resolve ( state . resolve , globals ) ;
389
389
globals . $$state = state ; // Provide access to the state itself for internal use
390
390
391
- // Resolve template and dependencies for all views. Each view receives
392
- // its own dependencies, which are set up to inherit from the state's deps,
393
- // and are accessible from the state locals as '$$view$<name>'.
391
+ // Resolve template and dependencies for all views.
394
392
forEach ( state . views , function ( view , name ) {
395
393
// References to the controller (only instantiated at link time)
396
394
var $view = dst [ name ] = {
@@ -404,8 +402,10 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory) {
404
402
$view . $template = result ;
405
403
} ) ) ;
406
404
407
- // View-local dependencies
408
- resolve ( view . resolve , $view ) ;
405
+ // View-local dependencies. If we've reused the state definition as the default
406
+ // view definition in .state(), we can end up with state.resolve === view.resolve.
407
+ // Avoid resolving everything twice in that case.
408
+ if ( view . resolve !== state . resolve ) resolve ( view . resolve , $view ) ;
409
409
} ) ;
410
410
411
411
// Once we've resolved all the dependencies for this state, merge
0 commit comments