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

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

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

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

谢谢

【问题讨论】:

    标签: angularjs angular-ui-bootstrap


    【解决方案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 会被观看吗?我会考虑尝试一下。
    猜你喜欢
    • 2016-10-11
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 2011-04-14
    • 2020-04-15
    相关资源
    最近更新 更多