【发布时间】:2017-10-28 09:05:36
【问题描述】:
有没有一种简单的方法可以在不使用 ngx-bootstrap 库的情况下在 Angular 4 应用程序的 contextmenu 事件上切换 Bootstrap 4 下拉菜单?
Bootstrap 文档说您可以通过调用从 JavaScript 切换下拉列表:
$('.dropdown-toggle').dropdown()
所以我尝试在 contextmenu 事件处理程序中执行此操作,但它不起作用。我总是收到一条错误消息:
...下拉菜单不是函数
我也尝试直接在 @ViewChild() 的 ElementRef 的本机元素上调用 dropdown() 函数,但我得到了同样的错误。
问题出在哪里?我可以通过使用数据属性来切换下拉菜单(所以我假设 Bootstrap 脚本在这里工作)但是不可能以这种方式在上下文菜单上切换它,或者是吗?
我更喜欢没有任何外部库的解决方案。
【问题讨论】:
-
是的,我已经按照 Bootstrap 文档的建议从 CDN 加载了它们。
-
我认为最好不要将 jQuery 与 Angular 混合使用。为什么不想使用
ngx-bootstrap? -
我说过同样的话,jQuery 和 Angular 会导致显示问题,仅使用 Angular 就很容易。创建一个 closedMenu 和 closedSubMenu(如果你想要手风琴菜单)并使用类装饰器 :)
-
我尽量避免使用 jQuery,但它在示例中,所以我尝试了它。当我尝试执行
this.dropdownToggle.nativeElement['dropdown']()时它也不起作用,其中dropdownToggle是切换元素上的模板变量。这应该相当于jQuery调用,还是不? -
我不想使用
ngx-bootstrap,因为它太大了,我不需要它提供的大部分功能。但我已经尝试过了,BsDropdownDirective在这里也不起作用。当我通过@ViewChild(BsDropdownDirective)引用它时,当我尝试从上下文菜单事件处理程序访问它时,变量是undefined。我已经向我的应用程序的核心模块添加了一个导入,所以我现在不知道这里出了什么问题。
标签: angular contextmenu bootstrap-4