2016-11-17 18 views
2

В моем приложении Angular 2 я предоставляю объект окна, используя то, что описано здесь: Angular2 - How to inject window into an angular2 service.Угловой 2 AOT - свойство 'window' не существует для типа

Однако компилятор ngc, используемый для AOT, возвращает несколько ошибок. Сначала я должен был изменить способ, которым я обеспечить зависимость (обратите внимание на «окно»):

@NgModule({   
    providers: [ 
    { provide: 'Window', useValue: window } 
    ], 
    ... 
}) 
export class AppModule {} 

И в моем компоненте (обратите внимание на тип «любой»):

@Component({ ... }) 
export default class MyComponent { 
    constructor (
     @Inject('Window') private window: any 
    ) {} 
... 

Однако я все еще получаю следующее сообщение об ошибке брошенной НГК компилятором в моем модуле ngfactory:

Свойство «окна» не существует на типе

Опять все отлично работает с tsc-компилятором.

ответ

1

Следующая, простое решение сделал трюк для меня:

Под «@NgModule», в ""раздел:

{provide: 'window', useFactory: getWindow } 

Убедитесь в том, чтобы экспортировать "провайдеры метод GetWindow":

export function getWindow() { return window; } 

Источник - https://github.com/angular/angular/issues/14050

Смежные вопросы