@@ -129,14 +129,16 @@ function $StateRefDirective($state, $timeout) {
129129 var def = { state : ref . state , href : null , params : null , options : null } ;
130130 var type = getTypeInfo ( element ) ;
131131 var active = uiSrefActive [ 1 ] || uiSrefActive [ 0 ] ;
132+ var unlinkInfoFn = null ;
132133
133134 def . options = extend ( defaultOpts ( element , $state ) , attrs . uiSrefOpts ? scope . $eval ( attrs . uiSrefOpts ) : { } ) ;
134135
135136 var update = function ( val ?) {
136137 if ( val ) def . params = angular . copy ( val ) ;
137138 def . href = $state . href ( ref . state , def . params , def . options ) ;
138139
139- if ( active ) active . $$addStateInfo ( ref . state , def . params ) ;
140+ if ( unlinkInfoFn ) unlinkInfoFn ( ) ;
141+ if ( active ) unlinkInfoFn = active . $$addStateInfo ( ref . state , def . params ) ;
140142 if ( def . href !== null ) attrs . $set ( type . attr , def . href ) ;
141143 } ;
142144
@@ -185,10 +187,7 @@ function $StateRefDynamicDirective($state, $timeout) {
185187 def . state = group [ 0 ] ; def . params = group [ 1 ] ; def . options = group [ 2 ] ;
186188 def . href = $state . href ( def . state , def . params , def . options ) ;
187189
188- if ( unlinkInfoFn ) {
189- unlinkInfoFn ( ) ;
190- unlinkInfoFn = null ;
191- }
190+ if ( unlinkInfoFn ) unlinkInfoFn ( ) ;
192191 if ( active ) unlinkInfoFn = active . $$addStateInfo ( def . state , def . params ) ;
193192 if ( def . href ) attrs . $set ( type . attr , def . href ) ;
194193 }
0 commit comments