fix(animations): resolve error when using AnimationBuilder with platform-server (#18642)

Use an injected DOCUMENT instead of assuming the global 'document'
exists.

Fixes #18635.

PR Close #18642
This commit is contained in:
Vikram Subramanian
2017-08-10 18:08:49 -07:00
committed by Miško Hevery
parent 21c44672c4
commit 845c68fdb3
2 changed files with 7 additions and 4 deletions

View File

@ -6,7 +6,8 @@
* found in the LICENSE file at https://angular.io/license
*/
import {AnimationBuilder, AnimationFactory, AnimationMetadata, AnimationOptions, AnimationPlayer, NoopAnimationPlayer, sequence} from '@angular/animations';
import {Injectable, RendererFactory2, RendererType2, ViewEncapsulation} from '@angular/core';
import {Inject, Injectable, RendererFactory2, RendererType2, ViewEncapsulation} from '@angular/core';
import {DOCUMENT} from '@angular/platform-browser';
import {AnimationRenderer} from './animation_renderer';
@ -15,7 +16,7 @@ export class BrowserAnimationBuilder extends AnimationBuilder {
private _nextAnimationId = 0;
private _renderer: AnimationRenderer;
constructor(rootRenderer: RendererFactory2) {
constructor(rootRenderer: RendererFactory2, @Inject(DOCUMENT) doc: any) {
super();
const typeData = {
id: '0',
@ -23,7 +24,7 @@ export class BrowserAnimationBuilder extends AnimationBuilder {
styles: [],
data: {animation: []}
} as RendererType2;
this._renderer = rootRenderer.createRenderer(document.body, typeData) as AnimationRenderer;
this._renderer = rootRenderer.createRenderer(doc.body, typeData) as AnimationRenderer;
}
build(animation: AnimationMetadata|AnimationMetadata[]): AnimationFactory {