首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角6+ Popper.js (不含jQuery)

角6+ Popper.js (不含jQuery)
EN

Stack Overflow用户
提问于 2018-05-21 20:37:00
回答 1查看 7.6K关注 0票数 4

我正在尝试将Popper.js设置为使用角5,而不需要引导或jquery。我试着遵循这个https://github.com/FezVrasta/popper.js/#react-vuejs-angular-angularjs-emberjs-etc-integration,但是对于角度应用来说,这并不是一个A到B点的描述。

我通过npm安装了Popper.js

代码语言:javascript
复制
npm install popper.js --save

然后,我选择将esm模块捆绑到我的角cli脚本中。

代码语言:javascript
复制
"scripts": [
                   (...)
        "../node_modules/popper.js/dist/esm/popper.js"
      ],

由于esm/popper.js导出Popper变量,如下所示。

代码语言:javascript
复制
var Popper = function () {

我想我应该在我的角模板中声明popper变量,如下所示

代码语言:javascript
复制
declare var Popper;

唉,我运气不好。

有没有人对如何正确地实现这一点有想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-21 20:57:18

首先,我用npm安装了Popper.js

代码语言:javascript
复制
npm install popper.js --save

然后,我将Popper定义为角-cli.json中的外部脚本。

angular-cli.json

代码语言:javascript
复制
"scripts": [
                   (...)
        "../node_modules/popper.js/dist/esm/popper.min.js"
      ],

然后,我在角度分量中导入波普,以正确的角度方式初始化它,我们就可以继续了。

组件

代码语言:javascript
复制
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;
        } 
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50456299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档