在我的WebApp中,我想显示一个自定义的弹出窗口,当我的控制器中的变量被设置时将触发该弹出窗口。为此,我创建了一个自定义触发器事件,并使用$tooltipProvider.setTriggers({"showChat": "hideChat"}]
以下是我的代码的plnkr.co无效。
我还检查了StackOverflow上的其他解决方案(如AngularJS Bootstrap Tooltip - trigger on event或Good way to dynamically open / close a popover (or tooltip) using angular, based on expression?),这些解决方案似乎有效,但我无法弄清楚我的代码在哪里出错。 我认为这只是一件小事(总是...... :-))
答案 0 :(得分: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。
顺便说一句:除非您在应用中执行更复杂的操作,否则只需使用popover-is-open="showPopover"
来触发弹出窗口,例如this plunker