@@ -158,22 +158,24 @@ let uiSref = ['$uiRouter', '$timeout',
158
158
restrict : 'A' ,
159
159
require : [ '?^uiSrefActive' , '?^uiSrefActiveEq' ] ,
160
160
link : function ( scope : IScope , element : IAugmentedJQuery , attrs : any , uiSrefActive : any ) {
161
- let ref = parseStateRef ( attrs . uiSref ) ;
162
161
let type = getTypeInfo ( element ) ;
163
162
let active = uiSrefActive [ 1 ] || uiSrefActive [ 0 ] ;
164
163
let unlinkInfoFn : Function = null ;
165
164
let hookFn ;
166
165
167
- let rawDef = { uiState : ref . state } as Def ;
166
+ let rawDef = { } as Def ;
168
167
let getDef = ( ) => processedDef ( $state , element , rawDef ) ;
168
+
169
+ let ref = parseStateRef ( attrs . uiSref ) ;
170
+ rawDef . uiState = ref . state ;
169
171
rawDef . uiStateOpts = attrs . uiSrefOpts ? scope . $eval ( attrs . uiSrefOpts ) : { } ;
170
172
171
- let update = function ( ) {
173
+ function update ( ) {
172
174
let def = getDef ( ) ;
173
175
if ( unlinkInfoFn ) unlinkInfoFn ( ) ;
174
176
if ( active ) unlinkInfoFn = active . $$addStateInfo ( def . uiState , def . uiStateParams ) ;
175
- if ( def . href !== null ) attrs . $set ( type . attr , def . href ) ;
176
- } ;
177
+ if ( def . href != null ) attrs . $set ( type . attr , def . href ) ;
178
+ }
177
179
178
180
if ( ref . paramExpr ) {
179
181
scope . $watch ( ref . paramExpr , function ( val ) {
@@ -182,6 +184,7 @@ let uiSref = ['$uiRouter', '$timeout',
182
184
} , true ) ;
183
185
rawDef . uiStateParams = angular . copy ( scope . $eval ( ref . paramExpr ) ) ;
184
186
}
187
+
185
188
update ( ) ;
186
189
187
190
scope . $on ( '$destroy' , < any > $uiRouter . stateRegistry . onStatesChanged ( update ) ) ;
@@ -237,20 +240,22 @@ let uiState = ['$uiRouter', '$timeout',
237
240
restrict : 'A' ,
238
241
require : [ '?^uiSrefActive' , '?^uiSrefActiveEq' ] ,
239
242
link : function ( scope : IScope , element : IAugmentedJQuery , attrs : any , uiSrefActive : any ) {
240
- var type = getTypeInfo ( element ) ;
241
- var active = uiSrefActive [ 1 ] || uiSrefActive [ 0 ] ;
243
+ let type = getTypeInfo ( element ) ;
244
+ let active = uiSrefActive [ 1 ] || uiSrefActive [ 0 ] ;
245
+ let unlinkInfoFn : Function = null ;
246
+ let hookFn ;
247
+
248
+ let rawDef = { } as Def ;
249
+ let getDef = ( ) => processedDef ( $state , element , rawDef ) ;
250
+
242
251
let inputAttrs = [ 'uiState' , 'uiStateParams' , 'uiStateOpts' ] ;
243
252
let watchDeregFns = inputAttrs . reduce ( ( acc , attr ) => ( acc [ attr ] = noop , acc ) , { } ) ;
244
- var unlinkInfoFn : Function = null ;
245
- var hookFn ;
246
- var rawDef = { } as Def ;
247
- let getDef = ( ) => processedDef ( $state , element , rawDef ) ;
248
253
249
254
function update ( ) {
250
255
let def = getDef ( ) ;
251
256
if ( unlinkInfoFn ) unlinkInfoFn ( ) ;
252
257
if ( active ) unlinkInfoFn = active . $$addStateInfo ( def . uiState , def . uiStateParams ) ;
253
- if ( def . href ) attrs . $set ( type . attr , def . href ) ;
258
+ if ( def . href != null ) attrs . $set ( type . attr , def . href ) ;
254
259
}
255
260
256
261
inputAttrs . forEach ( ( field ) => {
@@ -265,9 +270,10 @@ let uiState = ['$uiRouter', '$timeout',
265
270
} )
266
271
} ) ;
267
272
273
+ update ( ) ;
274
+
268
275
scope . $on ( '$destroy' , < any > $uiRouter . stateRegistry . onStatesChanged ( update ) ) ;
269
276
scope . $on ( '$destroy' , < any > $uiRouter . transitionService . onSuccess ( { } , update ) ) ;
270
- update ( ) ;
271
277
272
278
if ( ! type . clickable ) return ;
273
279
hookFn = clickHook ( element , $state , $timeout , type , getDef ) ;
0 commit comments