简体   繁体   English

AngularJS Bootstrap Popover自定义触发器

[英]AngularJS Bootstrap Popover custom trigger

In my WebApp I want to show a customized popover that will be triggered when a variable in my controller is set. 在我的WebApp中,我想显示一个自定义弹出窗口,该弹出窗口将在设置控制器中的变量时触发。 To achieve this I've created a custom trigger event and set it with $tooltipProvider.setTriggers({"showChat": "hideChat"}] 为此,我创建了一个自定义触发事件,并使用$tooltipProvider.setTriggers({"showChat": "hideChat"}]

Here is a plnkr.co of my code that does not working. 这是我的代码的plnkr.co无法正常工作。

I also checked other solutions here on StackOverflow (like AngularJS Bootstrap Tooltip - trigger on event or Good way to dynamically open / close a popover (or tooltip) using angular, based on expression? ) that seem to work, but I can't figure out where my code is wrong. 我还在这里检查了StackOverflow上的其他解决方案(例如AngularJS Bootstrap工具提示-在事件上触发基于表达式基于角度的角度动态打开/关闭弹出窗口(或工具提示)的好方法? ),但似乎无法解决。找出我的代码错误的地方。 I assume it's just a little thing (like always.. :-) ) 我认为这只是一件小事(像往常一样.. :-))

Angular-bootstrap seems to use addEventListener to subscribe to this event, which means you cannot trigger it with .trigger(), what you'll need is dispatchEvent: Angular-bootstrap似乎使用addEventListener来订阅此事件,这意味着您无法使用.trigger()触发它,您需要的是dispatchEvent:

if(scope.showPopover) {
  console.log('trigger showChat')
  element.get(0).dispatchEvent(new Event("showChat"));
} else {
  console.log('trigger hideChat')
  element.get(0).dispatchEvent(new Event("hideChat"));
}

See in this fixed plunker . 参见此固定式塞子

Btw: unless you do something more complicated in your app, you can simply use popover-is-open="showPopover" to trigger the popover, like in this plunker 顺便说一句:除非您在应用程序中做一些更复杂的事情,否则您可以简单地使用popover-is-open="showPopover"来触发弹出式窗口,就像在这个监听器中一样

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM