Angular UI Popover 关闭按钮 [英] Angular UI Popover close button
问题描述
我已阅读 Angular UI Bootstrap 添加关闭按钮 和 在 ng-repeat 中的 ng-click 上显示隐藏的 div.我想使用后一篇文章中的解决方案并将其应用于第一篇文章中所述的问题.本质上,我希望能够使用 ng-show
或 ng-click
关闭 Angular UI Bootstrap 弹出框.
我有一段示例代码来说明这一点.这段代码只是在点击特定元素时将 CSS 类应用于特定元素,并在再次点击时将其删除:
<div ng-click="style=!style"></div>
每当点击一个包含弹出框的元素时,就会创建一个弹出框模板.在 Chrome DOM 检查器中,开始标记如下所示:
<div class="popover ng-isolate-scope 右淡入"tooltip-animation-class="fade" tooltip-classes=""ng-class="{ in: isOpen() }" popover-template-popup="" title=""content-exp="contentExp()"placement="right" popup-class="" animation="animation"is-open="isOpen" origin-scope="origScope"style="顶部:317.5px;左侧:541.8125px;显示:块;">
注意 ng-class="{in: isOpen()}"
.我假设这控制了弹出框是否打开,并希望使用与上面示例中相同的 ng-click
方法,并将其应用于弹出框内的按钮.但是,当我尝试这样做时,它不起作用.我也无法在 ui-bootstrap-tpls.js
代码中的任何地方找到 popover 模板.据我所知,popover 创建是巫毒魔法.
令人沮丧的是,Angular UI Bootstrap 还没有这个功能.我已经尝试断断续续地解决这个问题一个多星期了,我看到的每个解决方案"似乎都不适合我.
我是否正确理解 ng-class="{in: isOpen()}"
?在哪里编辑弹出框模板以添加关闭按钮?
@ognus 在 GitHub 线程.
他说:
<块引用>我发现使用简单的自定义指令最适合我的用例.我只是希望能够从弹出框模板中关闭弹出框.
该指令公开了用户自定义触发器来打开和关闭弹出窗口的 scope.toggle 方法.然后我在 popover 模板中使用这个方法.
有一个 plnkr,我经过改编来测试我自己的问题.解决方案涉及创建指令(当然).
HTML
<html ng-app="main"><头><script data-require="angular.js@1.x";数据-semver =1.4.1";src=https://code.angularjs.org/1.4.1/angular.js"></script><script data-require="ui-bootstrap@0.13.0";数据-semver =0.13.0";src=http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.13.0.min.js"></script><link data-require="bootstrap-css@*";数据-semver =3.3.1";rel=样式表"href=//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css";/><script src="popoverToggle.js"></script><script src="script.js"></script>头部><body style="margin: 50px"><!-- 显示弹出框链接-->显示弹出框<div popover-placement="底部"弹出触发器=打开";popover-template="'popover-template.html'";popover-toggle>显示弹出框2</div>