angular-ui 如果在弹出框内单击按钮,弹出框会消失

angular-ui popover vanish, if a button is clicked inside of popover

我已经将 popoverpopover-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>