Доступ к угловому экземпляру NgZone из window.object

Можно ли получить доступ к угловому (2+) экземпляру ZoneJS (NgZone) без внедрения его внутрь конструктора, как это :

...

 const zone = window['<angular zonejs path in window object>']
...

На данный момент, когда я разрабатываю свою библиотеку angular, мне нужно сделать это:

class Test {
 constructor( zone: NgZone ) { initmyplugin(zone); }
}

Но я не хочу, чтобы пользователь заботился об инициализации NgZone.


person Dariusz Filipiak    schedule 03.12.2017    source источник
comment
Также я не хочу использовать инжектор angular.io/api/core/Injector для хранения библиотеки независимый от фреймворка.   -  person Dariusz Filipiak    schedule 03.12.2017
comment
Извините, @yurzui, но это не экземпляр...   -  person Dariusz Filipiak    schedule 04.12.2017


Ответы (1)


Вы можете получить экземпляр NgZone, используя следующий код:

ng.probe(getAllAngularRootElements()[0]).injector.get(ng.coreTokens.NgZone)

Смотрите также

person yurzui    schedule 04.12.2017
comment
Есть проблема с этой командой, когда я скомпилировал свой пакет с: ng build --aot -prod --no-sourcemap и ng.probe(getAllAngularRootElements()[0]) возвращает null. Вы знаете, как получить доступ к ngzone в этом режиме приложения? - person Dariusz Filipiak; 08.12.2017
comment
Проверьте это github.com/gdi2290/ angular-starter/blob/master/src/environments/ Возможно, это может вам помочь - person yurzui; 08.12.2017