1

在我的WebApp中,我想显示一个自定义的弹出窗口,当我的控制器中的变量被设置时将会触发。为了达到这个目的,我创建了一个自定义触发器事件,并将它设置为$tooltipProvider.setTriggers({"showChat": "hideChat"}]AngularJS Bootstrap Popover自定义触发器

这是我的代码的plnkr.co不起作用。

我也检查了StackOverflow的其他解决方案(如AngularJS Bootstrap Tooltip - trigger on eventGood way to dynamically open/close a popover (or tooltip) using angular, based on expression?)似乎工作,但我不知道我的代码是错的。 我认为它只是一个小东西(像总是..-))

回答

1

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")); 
} 

看到这个固定的plunker

BTW:除非你做更复杂的东西在你的应用程序,你可以简单地使用popover-is-open="showPopover"触发酥料饼,像this plunker

+0

这解决了我的问题。谢谢 – Philipp