1

在我的 WebApp 中,我想显示一个自定义的弹出框,当我的控制器中的变量设置时将触发该弹出框。为此,我创建了一个自定义触发事件并将其设置为$tooltipProvider.setTriggers({"showChat": "hideChat"}]

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

我还在 StackOverflow 上检查了其他解决方案(如AngularJS Bootstrap Tooltip - 事件触发基于表达式使用 Angular 动态打开/关闭弹出框(或工具提示)的好方法?)似乎有效,但我想不通找出我的代码错误的地方。我认为这只是一件小事(像往常一样.. :-))

4

1 回答 1

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"来触发弹出窗口,就像在这个 plunker

于 2015-09-10T02:56:03.737 回答