@@ -226,18 +226,11 @@ uiView = [
226
226
inherited = $element . inheritedData ( '$uiView' ) || rootData ,
227
227
name = $interpolate ( attrs [ 'uiView' ] || attrs [ 'name' ] || '' ) ( scope ) || '$default' ;
228
228
229
- let previousEl : JQuery , currentEl : JQuery , currentScope : IScope , viewConfig : Ng1ViewConfig ;
230
-
231
- const uiViewId = $view . registerView ( 'ng1' , inherited . $uiView . id , name , renderContentIntoUIViewPortal ) ;
232
-
233
- scope . $on ( '$destroy' , function ( ) {
234
- trace . traceUIViewEvent ( 'Destroying/Unregistering' , activeUIView ) ;
235
- $view . deregisterView ( uiViewId ) ;
236
- } ) ;
229
+ let previousEl : JQuery , currentEl : JQuery , currentScope : IScope ;
237
230
238
231
const activeUIView : ActiveUIView = {
239
232
$type : 'ng1' ,
240
- id : uiViewId , // filled in later
233
+ id : null , // filled in later
241
234
name : name , // ui-view name (<div ui-view="name"></div>
242
235
fqn : inherited . $uiView . fqn ? inherited . $uiView . fqn + '.' + name : name , // fully qualified name, describes location in DOM
243
236
config : null , // The ViewConfig loaded (from a state.views definition)
@@ -255,22 +248,15 @@ uiView = [
255
248
} ;
256
249
257
250
trace . traceUIViewEvent ( 'Linking' , activeUIView ) ;
251
+ const uiViewId = $view . registerView ( 'ng1' , inherited . $uiView . id , name , renderContentIntoUIViewPortal ) ;
258
252
259
- function renderContentIntoUIViewPortal ( renderCommand : UIViewPortalRenderCommand ) {
260
- if ( renderCommand . command === 'RENDER_DEFAULT_CONTENT' ) {
261
- viewConfig = undefined ;
262
- } else if ( renderCommand . command === 'RENDER_ROUTED_VIEW' ) {
263
- viewConfig = renderCommand . routedViewConfig as Ng1ViewConfig ;
264
- } else if ( renderCommand . command === 'RENDER_INTEROP_DIV' ) {
265
- }
266
-
267
- updateView ( viewConfig ) ;
268
- }
253
+ scope . $on ( '$destroy' , function ( ) {
254
+ trace . traceUIViewEvent ( 'Destroying/Unregistering' , activeUIView ) ;
255
+ $view . deregisterView ( uiViewId ) ;
256
+ } ) ;
269
257
270
258
$element . data ( '$uiView' , { $uiView : activeUIView } ) ;
271
259
272
- updateView ( ) ;
273
-
274
260
function cleanupLastView ( ) {
275
261
if ( previousEl ) {
276
262
trace . traceUIViewEvent ( 'Removing (previous) el' , previousEl . data ( '$uiView' ) ) ;
@@ -297,13 +283,25 @@ uiView = [
297
283
}
298
284
}
299
285
300
- function updateView ( config ?: Ng1ViewConfig ) {
286
+ function renderContentIntoUIViewPortal ( renderCommand : UIViewPortalRenderCommand ) {
287
+ if ( isString ( activeUIView ) && activeUIView . id !== renderCommand . id ) {
288
+ throw new Error (
289
+ `Received a render command for wrong UIView. Render command id: ${ renderCommand . id } , but this UIView id: ${ activeUIView . id } `
290
+ ) ;
291
+ }
292
+
293
+ activeUIView . id = renderCommand . id ;
294
+ const viewConfig =
295
+ renderCommand . command === 'RENDER_ROUTED_VIEW'
296
+ ? ( renderCommand . routedViewConfig as Ng1ViewConfig )
297
+ : undefined ;
298
+
301
299
const newScope = scope . $new ( ) ;
302
300
const animEnter = $q . defer ( ) ,
303
301
animLeave = $q . defer ( ) ;
304
302
305
303
const $uiViewData : UIViewData = {
306
- $cfg : config ,
304
+ $cfg : viewConfig ,
307
305
$uiView : activeUIView ,
308
306
} ;
309
307
@@ -354,7 +352,7 @@ uiView = [
354
352
*
355
353
* @param {Object } event Event object.
356
354
*/
357
- currentScope . $emit ( '$viewContentLoaded' , config || viewConfig ) ;
355
+ currentScope . $emit ( '$viewContentLoaded' , viewConfig ) ;
358
356
currentScope . $eval ( onloadExp ) ;
359
357
}
360
358
} ;
0 commit comments