fix(bug): temporary fix for ng2-bootstrap modals (#493)

This commit is contained in:
ESadouski 2016-11-30 23:27:45 +03:00 committed by Dmitry Nehaychik
parent 0838696218
commit ca89355e96
2 changed files with 26 additions and 2 deletions

View file

@ -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",

View file

@ -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");
}
};
}
}