Сначала я установил Popper.js с помощью npm
npm install popper.js --save
Затем я определил Popper как внешний скрипт в angular-cli.json
angular-cli.json
"scripts": [
(...)
"../node_modules/popper.js/dist/esm/popper.min.js"
],
Затем я импортирую поппер в угловой компонент, инициализирую его правильным угловым путем, и мы готовы идти.
Компонент
import Popper, {PopperOptions} from 'popper.js';
@Component({
selector: 'x',
templateUrl: './x',
styleUrls: ['./x']
})
export class X_Component implements OnInit {
@Input() popperOptions: PopperOptions = {};
@Input() popperTarget: string | Element;
private popper: Popper;
constructor(private el: ElementRef) { }
ngOnInit() {
this.popper = new Popper(
this.getTargetNode(),
this.el.nativeElement,
this.popperOptions
);
}
private getTargetNode(): Element {
if (this.popperTarget) {
if (typeof this.popperTarget === 'string') {
return document.querySelector(this.popperTarget);
} else {
return this.popperTarget;
}
} else {
return this.el.nativeElement;
}
}
}