繁体   English   中英

关闭AngularStrap popover

[英]Close AngularStrap popover

当我单击一个按钮时,它会显示一个弹出框,如果单击弹出框内的按钮,则可以关闭该弹出框。 但是,如果您单击另一个按钮打开一个弹出窗口,您将同时看到两个弹出窗口,我想只保留一个。

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

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

尝试在弹出窗口的可忽略元素上添加ng-click="$hide()" IE:

<a class="btn btn-primary"  ng-click="$hide()">Close</a>

它没有包含在文档中,但它适用于我,如果您使用数据模板进行弹出式内容,尚未尝试使用其他打开的弹出窗口。

这应该是一个老问题,在最新版本的angular-strap中,在这种情况下可以使用新属性: auto-close='1'

好吧,我很确定这是一个可怕的黑客攻击,但是这里有。 假设你的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

angular-strap github项目中存在一个问题,它正好询问您想要的功能。

然而,目前我正在写这个答案,它仍然是开放的。

trigger : 'focus' ,

在同一个问题上为我工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM