fix(dynamic_component_loader): leave the view tree in a consistent state when hydration fails

Closes #5718
This commit is contained in:
vsavkin
2015-12-08 14:51:54 -08:00
committed by Jeremy Elbourn
parent 0d9a1de4d9
commit 0df8bc4e52
4 changed files with 49 additions and 5 deletions

View File

@ -319,9 +319,15 @@ export class AppViewManager_ extends AppViewManager {
}
this._utils.attachViewInContainer(parentView, boundElementIndex, contextView,
contextBoundElementIndex, index, view);
this._utils.hydrateViewInContainer(parentView, boundElementIndex, contextView,
contextBoundElementIndex, index,
imperativelyCreatedInjector);
try {
this._utils.hydrateViewInContainer(parentView, boundElementIndex, contextView,
contextBoundElementIndex, index,
imperativelyCreatedInjector);
} catch (e) {
this._utils.detachViewInContainer(parentView, boundElementIndex, index);
throw e;
}
return view.ref;
}