@@ -22,7 +22,7 @@ export class AppViewManager {
2222 getComponentView ( hostLocation : ElementRef ) : ViewRef {
2323 var hostView = internalView ( hostLocation . parentView ) ;
2424 var boundElementIndex = hostLocation . boundElementIndex ;
25- return new ViewRef ( hostView . componentChildViews [ boundElementIndex ] ) ;
25+ return hostView . componentChildViews [ boundElementIndex ] . ref ;
2626 }
2727
2828 getViewContainer ( location : ElementRef ) : ViewContainerRef {
@@ -45,7 +45,7 @@ export class AppViewManager {
4545 if ( isBlank ( elementIndex ) ) {
4646 throw new BaseException ( `Could not find variable ${ variableName } ` ) ;
4747 }
48- return new ElementRef ( new ViewRef ( componentView ) , elementIndex ) ;
48+ return componentView . elementRefs [ elementIndex ] ;
4949 }
5050
5151 getComponent ( hostLocation : ElementRef ) : any {
@@ -69,7 +69,7 @@ export class AppViewManager {
6969
7070 this . _utils . hydrateRootHostView ( hostView , injector ) ;
7171 this . _viewHydrateRecurse ( hostView ) ;
72- return new ViewRef ( hostView ) ;
72+ return hostView . ref ;
7373 }
7474
7575 destroyRootHostView ( hostViewRef : ViewRef ) {
@@ -98,14 +98,13 @@ export class AppViewManager {
9898
9999 var view = this . _createPooledView ( protoView ) ;
100100
101- this . _renderer . attachViewInContainer ( parentView . render , boundElementIndex , atIndex ,
102- view . render ) ;
101+ this . _renderer . attachViewInContainer ( viewContainerLocation , atIndex , view . render ) ;
103102 this . _utils . attachViewInContainer ( parentView , boundElementIndex , contextView ,
104103 contextBoundElementIndex , atIndex , view ) ;
105104 this . _utils . hydrateViewInContainer ( parentView , boundElementIndex , contextView ,
106105 contextBoundElementIndex , atIndex , injector ) ;
107106 this . _viewHydrateRecurse ( view ) ;
108- return new ViewRef ( view ) ;
107+ return view . ref ;
109108 }
110109
111110 destroyViewInContainer ( viewContainerLocation : ElementRef , atIndex : number ) {
@@ -126,8 +125,7 @@ export class AppViewManager {
126125 // Right now we are destroying any special
127126 // context view that might have been used.
128127 this . _utils . attachViewInContainer ( parentView , boundElementIndex , null , null , atIndex , view ) ;
129- this . _renderer . attachViewInContainer ( parentView . render , boundElementIndex , atIndex ,
130- view . render ) ;
128+ this . _renderer . attachViewInContainer ( viewContainerLocation , atIndex , view . render ) ;
131129 return viewRef ;
132130 }
133131
@@ -137,9 +135,8 @@ export class AppViewManager {
137135 var viewContainer = parentView . viewContainers [ boundElementIndex ] ;
138136 var view = viewContainer . views [ atIndex ] ;
139137 this . _utils . detachViewInContainer ( parentView , boundElementIndex , atIndex ) ;
140- this . _renderer . detachViewInContainer ( parentView . render , boundElementIndex , atIndex ,
141- view . render ) ;
142- return new ViewRef ( view ) ;
138+ this . _renderer . detachViewInContainer ( viewContainerLocation , atIndex , view . render ) ;
139+ return view . ref ;
143140 }
144141
145142 _createPooledView ( protoView : viewModule . AppProtoView ) : viewModule . AppView {
@@ -160,7 +157,7 @@ export class AppViewManager {
160157 var binder = binders [ binderIdx ] ;
161158 if ( binder . hasStaticComponent ( ) ) {
162159 var childView = this . _createPooledView ( binder . nestedProtoView ) ;
163- this . _renderer . attachComponentView ( view . render , binderIdx , childView . render ) ;
160+ this . _renderer . attachComponentView ( view . elementRefs [ binderIdx ] , childView . render ) ;
164161 this . _utils . attachComponentView ( view , binderIdx , childView ) ;
165162 }
166163 }
@@ -179,14 +176,15 @@ export class AppViewManager {
179176 var view = viewContainer . views [ atIndex ] ;
180177 this . _viewDehydrateRecurse ( view , false ) ;
181178 this . _utils . detachViewInContainer ( parentView , boundElementIndex , atIndex ) ;
182- this . _renderer . detachViewInContainer ( parentView . render , boundElementIndex , atIndex ,
179+ this . _renderer . detachViewInContainer ( parentView . elementRefs [ boundElementIndex ] , atIndex ,
183180 view . render ) ;
184181 this . _destroyPooledView ( view ) ;
185182 }
186183
187184 _destroyComponentView ( hostView , boundElementIndex , componentView ) {
188185 this . _viewDehydrateRecurse ( componentView , false ) ;
189- this . _renderer . detachComponentView ( hostView . render , boundElementIndex , componentView . render ) ;
186+ this . _renderer . detachComponentView ( hostView . elementRefs [ boundElementIndex ] ,
187+ componentView . render ) ;
190188 this . _utils . detachComponentView ( hostView , boundElementIndex ) ;
191189 this . _destroyPooledView ( componentView ) ;
192190 }
0 commit comments