I wish to use the following NPM package with Angular CLI: ng2-ui
The implementation guide is for SystemJS, and not for Webpack, what is used by Angular CLI, what I have to use in this project.
What did I already do?
npm install ng2-ui --save
Added the following line to app.module.ts
import { Ng2UIModule } from 'ng2-ui';
Ng2UIModule
to the imports
array in @NgModule
.By this point I didn't use Ng2UIModule
in any of the components yet and before doing the mentioned operations the application worked just fine.
When I try to run the application by ng serve
, I get the following error in console:
ERROR in [default] C:\tools\test-package.net\node_modules\ng2-ui\dist\index.d.ts:1:31
Cannot find module 'ng2-overlay'.
ERROR in [default] C:\tools\test-package.net\node_modules\ng2-ui\dist\index.d.ts:2:32
Cannot find module 'ng2-map'.
ERROR in [default] C:\tools\test-package.net\node_modules\ng2-ui\dist\index.d.ts:3:60
Cannot find module 'ng2-popup'.
ERROR in [default] C:\tools\test-package.net\node_modules\ng2-ui\dist\index.d.ts:4:39
Cannot find module 'ng2-scrollable'.
I guess the application simply lacks the following systemjs.config.js
settings:
map['ng2-ui'] = 'node_modules/ng2-ui/dist';
packages['ng2-ui'] = {main: 'ng2-ui.umd.js', defaultExtension: 'js'}
Just I don't know how to make it work in the Angular CLI version of Webpack...
(Currently I use Angular CLI 1.0.0-beta.17)
Thanks for your help!
the ng2-ui has been changed to @ngui/overlay https://github.com/ng2-ui/overlay.
Here is my sample code.
ex.component.html
<div id='div1' class='container row'>
Div 1
</div>
<div id="overlay" ngui-overlay-of="div1" style='background-color:black'>
Loading data......
</div>
<div id="overlay2" ngui-overlay-of="div1" style='background-color:blue'>
Loading data......
</div>
<button (click)="showOverlay($event)" class='btn btn-success'>Show Overlay</button>
<button (click)="hideOverlay()" class='btn btn-danger'>Hide Overlay</button>
<br /><br />
<button (click)="showOverlay2($event)" class='btn btn-success'>Show Overlay</button>
<button (click)="hideOverlay2()" class='btn btn-danger'>Hide Overlay</button>
ex.component.ts
import { Component, OnInit } from '@angular/core';
import { NguiOverlayManager } from '@ngui/overlay';
@Component({
selector: 'app-ex',
templateUrl: './ex.component.html',
styleUrls: [ './ex.component.css' ],
providers:[NguiOverlayManager]
})
export class ExComponent implements OnInit {
constructor(private overManager:NguiOverlayManager) { }
ngOnInit() {
}
showOverlay(event: Event) {
this.overManager.open('overlay',event);
}
hideOverlay() {
this.overManager.close('overlay');
}
showOverlay2(event: Event) {
this.overManager.open('overlay2', event);
}
hideOverlay2() {
this.overManager.close('overlay2');
}
}
Add import { NguiOverlayModule } from '@ngui/overlay';
to the module and add NguiOverlayModule to the imports array.