fix(animations): avoid animation insertions during router back/refresh (#21977)

Closes #19712

PR Close #21977
This commit is contained in:
Matias Niemelä 2018-01-31 15:11:39 -08:00 committed by Matias Niemelä
parent 32105c8012
commit f88fba020b
1 changed files with 10 additions and 1 deletions

View File

@ -666,7 +666,16 @@ export class TransitionAnimationEngine {
// code does not contain any animation code in it, but it is // code does not contain any animation code in it, but it is
// just being called so that the node is marked as being inserted // just being called so that the node is marked as being inserted
if (namespaceId) { if (namespaceId) {
this._fetchNamespace(namespaceId).insertNode(element, parent); const ns = this._fetchNamespace(namespaceId);
// This if-statement is a workaround for router issue #21947.
// The router sometimes hits a race condition where while a route
// is being instantiated a new navigation arrives, triggering leave
// animation of DOM that has not been fully initialized, until this
// is resolved, we need to handle the scenario when DOM is not in a
// consistent state during the animation.
if (ns) {
ns.insertNode(element, parent);
}
} }
// only *directives and host elements are inserted before // only *directives and host elements are inserted before