angular-ui 如果在弹出框内单击按钮,弹出框会消失
angular-ui popover vanish, if a button is clicked inside of popover
我已经将 popover
与 popover-trigger
= 'outsideclick
' 一起使用,并且在弹出框内我使用了自定义指令来呈现 html.
现在,当我单击弹出框内的按钮时,弹出框会消失。
我在这里创建了问题的精简版 Link of problem
我做错了什么?
为什么弹出窗口消失了?
如何解决?
您可以将 ng-if 更改为 ng-show,它会起作用。
var template =
'<ul>' +
'<li data-ng-repeat="node in ' + appModel + '" >' +
'<button data-ng-show="node.collapsed" data-ng-click="' + treeId + '.selectNodeHead(node)">- click me</button>' +
'<button data-ng-show="!node.collapsed" data-ng-click="' + treeId + '.selectNodeHead(node)">+ click me</button>' +
'</li>' +
'</ul>';
这个问题可能是由于 ng-if 删除或重新创建了 DOM 树的一部分,仍然如果你想使用 ng-if 你可以在你的点击功能中使用 $event.stopPropagation();
所以事件未传播。
发件人:
为触发弹出窗口的按钮再添加一个属性,trigger="focus"
<button popover-trigger="'outsideClick'" trigger="focus" uib-popover-template="'tree.html'" type="button" class="btn btn-default">Popover</button>
我已经将 popover
与 popover-trigger
= 'outsideclick
' 一起使用,并且在弹出框内我使用了自定义指令来呈现 html.
现在,当我单击弹出框内的按钮时,弹出框会消失。
我在这里创建了问题的精简版 Link of problem
我做错了什么? 为什么弹出窗口消失了? 如何解决?
您可以将 ng-if 更改为 ng-show,它会起作用。
var template =
'<ul>' +
'<li data-ng-repeat="node in ' + appModel + '" >' +
'<button data-ng-show="node.collapsed" data-ng-click="' + treeId + '.selectNodeHead(node)">- click me</button>' +
'<button data-ng-show="!node.collapsed" data-ng-click="' + treeId + '.selectNodeHead(node)">+ click me</button>' +
'</li>' +
'</ul>';
这个问题可能是由于 ng-if 删除或重新创建了 DOM 树的一部分,仍然如果你想使用 ng-if 你可以在你的点击功能中使用 $event.stopPropagation();
所以事件未传播。
发件人:
为触发弹出窗口的按钮再添加一个属性,trigger="focus"
<button popover-trigger="'outsideClick'" trigger="focus" uib-popover-template="'tree.html'" type="button" class="btn btn-default">Popover</button>