检测 uib-popover 何时打开和关闭?

Posted

技术标签:

【中文标题】检测 uib-popover 何时打开和关闭?【英文标题】:Detect when uib-popover is being opened and being closed? 【发布时间】:2017-12-29 00:01:43 【问题描述】:

我一直在玩uib-popover,但不知道如何检测弹出框何时显示或关闭。对于常规引导弹出窗口,它似乎没有像“shown.bs.open/hidden”这样的事件。

有没有办法做到这一点我错过了?

弹出框本身的显示是在点击时显示的,但无论它是打开还是关闭,显然此时始终不可见。请注意,我正在附加到正文。

谢谢

【问题讨论】:

【参考方案1】:

我认为您正在寻找 popover-is-open 子指令

来自文档

popover-is-open (默认: false) - 是否显示弹出框。

注意这个子指令应用了一个观察者

此设置应用了一个角度 $watch 侦听器。

这里是如何使用它

<button uib-popover="I am activated manually" 
        popover-is-open="isOpen2"
        type="button" class="btn btn-default">
  Toggle popover
</button>

你可以在你的控制器中初始化它

$scope.isOpen2 = false; // or true

这是demo plunk

【讨论】:

感谢您的信息。当页面上有不确定数量的弹出框(并附加到正文)时,这将如何工作?您会知道被点击的特定 uib-popover 元素,在我的情况下,我知道特定的 classinfo,以便我可以使用其源元素识别特定的弹出窗口......你可以让 isOpen2 成为一个哈希表,然后绑定 popover- is-open 到 isOpen2[some-identifier]? isOpen2 只是一些绑定到作用域的变量,您可以在一些数据结构(如数组)中包含许多变量,这些数据结构将绑定到您喜欢的弹出框数量。 can you have isOpen2 be a hashtable and then tie popover-is-open to isOpen2[some-identifier],不是真的,但您可以使用 ng-repeat="(key, value) in obj" 进行类似的操作,然后使用 popover-is-open="key" 这很有趣。事情已经在使用 ng-repeat 来生成一个包含其他内容的表......所以如果你正在为一个表做 ng-repeat="foo in fooCollection" ,并且在 foo 上有一个指示字段 - 比如 foo .myPopoverIsOpen - 那么 foo.myPopoverIsOpen 会被观看吗?我会考虑尝试一下。

以上是关于检测 uib-popover 何时打开和关闭?的主要内容,如果未能解决你的问题,请参考以下文章

MacOS - 检测相机何时打开/关闭

Android:检测 GPS 何时打开/关闭(或当没有应用程序不再使用它时)

Android:检测 GPS 何时打开/关闭(或当没有应用程序不再使用它时)

您如何检测 iBeacon 发射器何时关闭?安卓

检测 PowerModeChange 并等待执行

如何检测 React Native 应用程序何时关闭(未暂停)?