@@ -129,14 +129,16 @@ function $StateRefDirective($state, $timeout) {
129
129
var def = { state : ref . state , href : null , params : null , options : null } ;
130
130
var type = getTypeInfo ( element ) ;
131
131
var active = uiSrefActive [ 1 ] || uiSrefActive [ 0 ] ;
132
+ var unlinkInfoFn = null ;
132
133
133
134
def . options = extend ( defaultOpts ( element , $state ) , attrs . uiSrefOpts ? scope . $eval ( attrs . uiSrefOpts ) : { } ) ;
134
135
135
136
var update = function ( val ?) {
136
137
if ( val ) def . params = angular . copy ( val ) ;
137
138
def . href = $state . href ( ref . state , def . params , def . options ) ;
138
139
139
- if ( active ) active . $$addStateInfo ( ref . state , def . params ) ;
140
+ if ( unlinkInfoFn ) unlinkInfoFn ( ) ;
141
+ if ( active ) unlinkInfoFn = active . $$addStateInfo ( ref . state , def . params ) ;
140
142
if ( def . href !== null ) attrs . $set ( type . attr , def . href ) ;
141
143
} ;
142
144
@@ -185,10 +187,7 @@ function $StateRefDynamicDirective($state, $timeout) {
185
187
def . state = group [ 0 ] ; def . params = group [ 1 ] ; def . options = group [ 2 ] ;
186
188
def . href = $state . href ( def . state , def . params , def . options ) ;
187
189
188
- if ( unlinkInfoFn ) {
189
- unlinkInfoFn ( ) ;
190
- unlinkInfoFn = null ;
191
- }
190
+ if ( unlinkInfoFn ) unlinkInfoFn ( ) ;
192
191
if ( active ) unlinkInfoFn = active . $$addStateInfo ( def . state , def . params ) ;
193
192
if ( def . href ) attrs . $set ( type . attr , def . href ) ;
194
193
}
0 commit comments