检测 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 何时打开和关闭?的主要内容,如果未能解决你的问题,请参考以下文章
Android:检测 GPS 何时打开/关闭(或当没有应用程序不再使用它时)