如何防止多个弹出窗口打开?一次只能打开一个。 请看我的朋友:http://plnkr.co/edit/MjP1AlygixXHEOC3Jd5a
在我的plunkr中,我使用jbruni更新的ui-bootstrap 0.10(他的plunkr在这里: http://plnkr.co/edit/B2wEis?p=info)
当悬停在两个窗口附近时,有可能同时打开两个弹出窗口。 :(
答案 0 :(得分:1)
如果您强制关闭动画,则关闭延迟似乎有效。不是一个干净的解决方案,但有点工作。你仍然有机会同时获得两个弹出窗口,因为如果有一个弹出窗口暂停关闭,则无法延迟新弹出窗口的启动。
http://plnkr.co/edit/a8XHo7FKhrqv37mWTPBk?p=info
if ( scope.tt_animation ) {
// transitionTimeout = $timeout(removeTooltip, 500);
setTimeout(function(){scope.tt_animation=false;hide();},500);
} else if ( scope.tt_popdown ){
vanishTimeout = $timeout(removeTooltip, 2000);
} else {0
removeTooltip();
}
答案 1 :(得分:0)
我编写了一个包含弹出窗口控件的指令,并使用popover-is-open触发弹出窗口打开和关闭。
要关闭所有打开的弹出框,我在父作用域上触发自定义事件:
$scope.openPopup = function()
{
$scope.$parent.$broadcast("multiSelectSinglePopoverInstanceEvent", {});
$scope.isPopupOpen = !$scope.isPopupOpen;
}
在自定义弹出控件控制器中,我通过关闭popover来处理事件:
$scope.$on("multiSelectSinglePopoverInstanceEvent", function (event, args) {
$scope.isPopupOpen = false;
});
这可能会有所帮助