我试图手动关闭一个引导程序弹出窗口,以便当我点击document或body不是弹出窗口上的任何地方时关闭它.
我发现最接近完成此任务的是创建一个指令(找到这个答案),但这是一个手动触发器,如果变量是true或false.
如果我点击任何不是popover的东西,任何人都可以帮我弄清楚如何让它关闭吗?
我不介意使用jQuery $(document).click(function(e){});我不知道如何调用close.
<div id="new_button" popover-template="plusButtonURL" popover-placement="right" popover-append-to-body="true" popover-animation="false">+</div>
Run Code Online (Sandbox Code Playgroud)
通常popover-trigger="focus"会这样做,但我的popover包含需要点击的内容.ng-click如果我使用焦点触发器,我的内部弹出窗口会被忽略,因此我正在寻找一种不那么传统的方法来解决这个问题.
我有一个连接到角度的表单,使用它进行验证.我能够使用ng-show指令显示错误消息,如下所示:
<span ng-show="t3.f.needsAttention(f.fieldName)" ng-cloak>
<span ng-show="f.fieldName.$error.required && !f.fieldName.$viewValue">
This field is required.
</span>
</span>
Run Code Online (Sandbox Code Playgroud)
.. f表单在哪里,t3来自表单上的自定义指令,用于检测是否尝试提交,并包含用于检查字段有效性的函数.
我想要完成的是在popover中显示验证消息.无论是bootstrap的原生popover,还是来自UI Bootstrap的popover ,我都加载了.我也可以考虑AngularStrap,如果使用该lib更容易.
我现在正在努力的是一般的弹出窗口的性质 - 它们基于点击,鼠标中心,模糊等用户事件自动显示.我想要做的是显示和隐藏基于相同的弹出窗口上面的ng-show属性中的函数.因此,当表达式返回false时隐藏它,当它返回true时,显示它.
我知道bootstrap有这个.popover('show'),但是我不应该告诉有关dom的任何角度,所以我不确定如何访问$(element).popover()if在自定义表单控制器功能中执行此操作.我错过了什么吗?
更新
重复投票中提到的解决方案仍然只显示mouseenter上的popover.我想强制它显示,好像在做$('#popover_id').popover('show').
popover twitter-bootstrap angularjs angular-ui-bootstrap angular-strap