diff --git a/package.json b/package.json index 6360b300..0890f7fd 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "leaflet": "^0.7.7", "leaflet-map": "^0.2.1", "lodash": "^4.12.0", - "ng2-bootstrap": "1.1.14", + "ng2-bootstrap": "1.1.16", "ng2-ckeditor": "1.0.7", "ng2-smart-table": "^0.3.2", "ng2-tree": "^0.0.2-7", diff --git a/src/app/app.component.ts b/src/app/app.component.ts index b00316f4..68f73394 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -4,7 +4,7 @@ import { GlobalState } from './global.state'; import { BaImageLoaderService, BaThemePreloader, BaThemeSpinner } from './theme/services'; import { layoutPaths } from './theme/theme.constants'; import { BaThemeConfig } from './theme/theme.config'; - +import {ComponentsHelper } from 'ng2-bootstrap'; /* * App Component * Top Level Component @@ -30,6 +30,8 @@ export class App { private _config: BaThemeConfig, private viewContainerRef: ViewContainerRef) { + this._fixModals(); + this._loadImages(); this._state.subscribe('menu.isCollapsed', (isCollapsed) => { @@ -48,4 +50,26 @@ export class App { // register some loaders BaThemePreloader.registerLoader(this._imageLoader.load(layoutPaths.images.root + 'sky-bg.jpg')); } + + private _fixModals(): void { + ComponentsHelper.prototype.getRootViewContainerRef = function () { + // https://github.com/angular/angular/issues/9293 + if (this.root) { + return this.root; + } + var comps = this.applicationRef.components; + if (!comps.length) { + throw new Error("ApplicationRef instance not found"); + } + try { + /* one more ugly hack, read issue above for details */ + var rootComponent = this.applicationRef._rootComponents[0]; + this.root = rootComponent._component.viewContainerRef; + return this.root; + } + catch (e) { + throw new Error("ApplicationRef instance not found"); + } + }; + } }