2017-10-28 95 views
0

有没有简单的方法来在Angular 4应用程序的contextmenu事件中切换Bootstrap 4下拉菜单,而无需使用ngx-bootstrap库?在Angular 4应用程序中作为上下文菜单的引导程序下拉菜单

的引导文件说,你可以通过调用切换从JavaScript下拉:

$('.dropdown-toggle').dropdown() 

于是,我就在contextmenu事件处理程序来执行这一点,但没有奏效。我总是得到一个错误说:

...下拉不是一个函数

我也尝试过直接的本地元素ElementRef从上了车调用下拉()函数@ViewChild()但我得到相同的错误。

问题在哪里?我可以通过使用数据属性来切换下拉菜单(所以我假设Bootstrap脚本可以在这里工作),但是无法通过这种方式在上下文菜单中切换它,或者它是否可以?

我宁愿没有任何外部库的解决方案。

+0

是的,我有他们都从CDN加载Bootstrap文档建议。 – livthomas

+0

我认为不要将jQuery与角度混合好得多。你为什么不想用'ngx-bootstrap'? –

+0

我说过同样的事情,jQuery和Angular会导致你显示问题,使用Angular做它只是如此简单。创建一个closedMenu和closedSubMenu(如果你想要手风琴菜单)并使用类装饰器:) – andrea06590

回答

0

我终于意识到,仅仅显示了自举下拉菜单是不够的,并我也想定位我点击的上下文菜单,但不想自己实现。

这就是为什么我决定使用ngx-contextmenu,虽然我之前提到我不想使用任何外部库。这是很容易设置,并使用Bootstrap下拉样式,这是我想要完成的第一个地方。

如果有人想使用这个库,只知道​​哪些情况下,上下文菜单目前默认情况下不显示。

0

你所想要实现的可能切换下拉太复杂了,有要容易得多:

你为什么不只是添加[class.hidden] =“menuClosed”,如:

<div [class.hidden]="menuClosed" class="dropdown">

只需在切换功能中将menuClosed变量设置为true或false,它就可以完成这项工作。

编辑:有角2+很酷的事情是,你可以迅速通过使用这种显示规则重现的jQuery/JavaScript的行为

+0

当然,但我必须处理样式,模糊事件等等,这些只会让我的组件混乱。 Bootstrap为下拉菜单提供了简单易用的解决方案。我只是不明白为什么它不可能轻松地将其绑定到contextmenu事件。 – livthomas