1
1
/**
2
2
* State-based routing for AngularJS
3
- * @version v0.3.0
3
+ * @version v0.3.1
4
4
* @link http://angular-ui.github.com/
5
5
* @license MIT License, http://www.opensource.org/licenses/MIT
6
6
*/
@@ -3355,7 +3355,7 @@ function $StateProvider( $urlRouterProvider, $urlMatcherFactory) {
3355
3355
$urlRouter . update ( true ) ;
3356
3356
3357
3357
return $state . current ;
3358
- } , function ( error ) {
3358
+ } ) . then ( null , function ( error ) {
3359
3359
if ( $state . transition !== transition ) return TransitionSuperseded ;
3360
3360
3361
3361
$state . transition = null ;
@@ -3986,7 +3986,7 @@ function $ViewDirective( $state, $injector, $uiViewScroll, $interpolate,
3986
3986
}
3987
3987
3988
3988
if ( currentEl ) {
3989
- var $uiViewData = currentEl . data ( '$uiView ' ) ;
3989
+ var $uiViewData = currentEl . data ( '$uiViewAnim ' ) ;
3990
3990
renderer . leave ( currentEl , function ( ) {
3991
3991
$uiViewData . $$animLeave . resolve ( ) ;
3992
3992
previousEl = null ;
@@ -3999,7 +3999,7 @@ function $ViewDirective( $state, $injector, $uiViewScroll, $interpolate,
3999
3999
4000
4000
function updateView ( firstTime ) {
4001
4001
var newScope ,
4002
- name = getUiViewName ( scope , attrs , inherited , $interpolate ) ,
4002
+ name = getUiViewName ( scope , attrs , $element , $interpolate ) ,
4003
4003
previousLocals = name && $state . $current && $state . $current . locals [ name ] ;
4004
4004
4005
4005
if ( ! firstTime && previousLocals === latestLocals ) return ; // nothing to do
@@ -4022,14 +4022,14 @@ function $ViewDirective( $state, $injector, $uiViewScroll, $interpolate,
4022
4022
4023
4023
var clone = $transclude ( newScope , function ( clone ) {
4024
4024
var animEnter = $q . defer ( ) , animLeave = $q . defer ( ) ;
4025
- var viewData = {
4026
- name : name ,
4025
+ var viewAnimData = {
4027
4026
$animEnter : animEnter . promise ,
4028
4027
$animLeave : animLeave . promise ,
4029
4028
$$animLeave : animLeave
4030
4029
} ;
4031
4030
4032
- renderer . enter ( clone . data ( '$uiView' , viewData ) , $element , function onUiViewEnter ( ) {
4031
+ clone . data ( '$uiViewAnim' , viewAnimData ) ;
4032
+ renderer . enter ( clone , $element , function onUiViewEnter ( ) {
4033
4033
animEnter . resolve ( ) ;
4034
4034
if ( currentScope ) {
4035
4035
currentScope . $emit ( '$viewContentAnimationEnded' ) ;
@@ -4074,14 +4074,14 @@ function $ViewDirectiveFill ( $compile, $controller, $state, $interpolate
4074
4074
var initial = tElement . html ( ) ;
4075
4075
return function ( scope , $element , attrs ) {
4076
4076
var current = $state . $current ,
4077
- $uiViewData = $element . data ( '$uiView' ) ,
4078
- locals = current && current . locals [ $uiViewData . name ] ;
4077
+ name = getUiViewName ( scope , attrs , $element , $interpolate ) ,
4078
+ locals = current && current . locals [ name ] ;
4079
4079
4080
4080
if ( ! locals ) {
4081
4081
return ;
4082
4082
}
4083
4083
4084
- extend ( $uiViewData , { state : locals . $$state } ) ;
4084
+ $element . data ( '$uiView' , { name : name , state : locals . $$state } ) ;
4085
4085
$element . html ( locals . $template ? locals . $template : initial ) ;
4086
4086
4087
4087
var resolveData = angular . extend ( { } , locals ) ;
@@ -4112,9 +4112,10 @@ function $ViewDirectiveFill ( $compile, $controller, $state, $interpolate
4112
4112
* Shared ui-view code for both directives:
4113
4113
* Given scope, element, and its attributes, return the view's name
4114
4114
*/
4115
- function getUiViewName ( scope , attrs , inherited , $interpolate ) {
4115
+ function getUiViewName ( scope , attrs , element , $interpolate ) {
4116
4116
var name = $interpolate ( attrs . uiView || attrs . name || '' ) ( scope ) ;
4117
- return name . indexOf ( '@' ) >= 0 ? name : ( name + '@' + ( inherited ? inherited . state . name : '' ) ) ;
4117
+ var uiViewCreatedBy = element . inheritedData ( '$uiView' ) ;
4118
+ return name . indexOf ( '@' ) >= 0 ? name : ( name + '@' + ( uiViewCreatedBy ? uiViewCreatedBy . state . name : '' ) ) ;
4118
4119
}
4119
4120
4120
4121
angular . module ( 'ui.router.state' ) . directive ( 'uiView' , $ViewDirective ) ;
0 commit comments