@@ -226,18 +226,11 @@ uiView = [
226226inherited = $element . inheritedData ( '$uiView' ) || rootData ,
227227name = $interpolate ( attrs [ 'uiView' ] || attrs [ 'name' ] || '' ) ( scope ) || '$default' ;
228228
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 ;
237230
238231const activeUIView :ActiveUIView = {
239232$type :'ng1' ,
240- id :uiViewId , // filled in later
233+ id :null , // filled in later
241234name :name , // ui-view name (<div ui-view="name"></div>
242235fqn :inherited . $uiView . fqn ?inherited . $uiView . fqn + '.' + name :name , // fully qualified name, describes location in DOM
243236config :null , // The ViewConfig loaded (from a state.views definition)
@@ -255,22 +248,15 @@ uiView = [
255248} ;
256249
257250trace . traceUIViewEvent ( 'Linking' , activeUIView ) ;
251+ const uiViewId = $view . registerView ( 'ng1' , inherited . $uiView . id , name , renderContentIntoUIViewPortal ) ;
258252
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+ } ) ;
269257
270258$element . data ( '$uiView' , { $uiView :activeUIView } ) ;
271259
272- updateView ( ) ;
273-
274260function cleanupLastView ( ) {
275261if ( previousEl ) {
276262trace . traceUIViewEvent ( 'Removing (previous) el' , previousEl . data ( '$uiView' ) ) ;
@@ -297,13 +283,25 @@ uiView = [
297283}
298284}
299285
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+
301299const newScope = scope . $new ( ) ;
302300const animEnter = $q . defer ( ) ,
303301animLeave = $q . defer ( ) ;
304302
305303const $uiViewData :UIViewData = {
306- $cfg :config ,
304+ $cfg :viewConfig ,
307305$uiView :activeUIView ,
308306} ;
309307
@@ -354,7 +352,7 @@ uiView = [
354352 *
355353 *@param {Object } event Event object.
356354 */
357- currentScope . $emit ( '$viewContentLoaded' , config || viewConfig ) ;
355+ currentScope . $emit ( '$viewContentLoaded' , viewConfig ) ;
358356currentScope . $eval ( onloadExp ) ;
359357}
360358} ;