加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 关闭AngularStrap popover

发布时间:2020-12-17 17:31:19 所属栏目:安全 来源:网络整理
导读:当我单击一个按钮时,它会显示一个弹出框,如果单击弹出框内的按钮,则可以关闭该弹出框.但是,如果您单击另一个按钮打开一个弹出窗口,您将同时看到两个弹出窗口,我想只保留一个. 我已尝试使用触发器’focus’,但如果我单击popover内的textarea,它会关闭popover,
当我单击一个按钮时,它会显示一个弹出框,如果单击弹出框内的按钮,则可以关闭该弹出框.但是,如果您单击另一个按钮打开一个弹出窗口,您将同时看到两个弹出窗口,我想只保留一个.

我已尝试使用触发器’focus’,但如果我单击popover内的textarea,它会关闭popover,我预计当您单击popover外部时会调用此触发器.

对此有何看法?可以从控制器中调用$hide,$show方法吗?

解决方法

好吧,我很确定这是一个可怕的黑客攻击,但是这里有.假设你的popover模板全部使用popover类(如果你没有使用带有data-template属性的自定义模板,他们应该),并且他们是触发它们的按钮的兄弟(如果你没有使用容器属性,它们是),您可以将以下指令应用于弹出窗口按钮.注意:这假设您的弹出框和弹出框按钮的父元素具有唯一ID.

angular.module('yourApp.directives',[]).directive('rmPopovers',function($document,$rootScope,$timeout,$popover) {
        return {
            restrict: 'EA',link : function(scope,element,attrs) {
                var $element = $(element);
                $element.click(function() {
                    $('.popover').each(function(){
                        var $this = $(this);
                        if($this.parent().attr('id') != $element.parent().attr('id'))
                        {
                            $this.scope().$hide();
                        }
                    }
                    );
                });
            }
        }
    }
);

然后

<button type="button" bs-popover rm-popovers [your data attribs here]>Button!</button

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读