@@ -123,14 +123,16 @@ function $StateRefDirective($state, $timeout) {
123123 var def = { state : ref . state , href : null , params : null } ;
124124 var type = getTypeInfo ( element ) ;
125125 var active = uiSrefActive [ 1 ] || uiSrefActive [ 0 ] ;
126+ var unlinkInfoFn = null ;
126127
127128 def . options = extend ( defaultOpts ( element , $state ) , attrs . uiSrefOpts ? scope . $eval ( attrs . uiSrefOpts ) : { } ) ;
128129
129130 var update = function ( val ) {
130131 if ( val ) def . params = angular . copy ( val ) ;
131132 def . href = $state . href ( ref . state , def . params , def . options ) ;
132133
133- if ( active ) active . $$addStateInfo ( ref . state , def . params ) ;
134+ if ( unlinkInfoFn ) unlinkInfoFn ( ) ;
135+ if ( active ) unlinkInfoFn = active . $$addStateInfo ( ref . state , def . params ) ;
134136 if ( def . href !== null ) attrs . $set ( type . attr , def . href ) ;
135137 } ;
136138
@@ -179,10 +181,7 @@ function $StateRefDynamicDirective($state, $timeout) {
179181 def . state = group [ 0 ] ; def . params = group [ 1 ] ; def . options = group [ 2 ] ;
180182 def . href = $state . href ( def . state , def . params , def . options ) ;
181183
182- if ( unlinkInfoFn ) {
183- unlinkInfoFn ( ) ;
184- unlinkInfoFn = null ;
185- }
184+ if ( unlinkInfoFn ) unlinkInfoFn ( ) ;
186185 if ( active ) unlinkInfoFn = active . $$addStateInfo ( def . state , def . params ) ;
187186 if ( def . href ) attrs . $set ( type . attr , def . href ) ;
188187 }
0 commit comments