我正在使用bootsrap popover https://angular-ui.github.io/bootstrap/这里是文档,我正在做一个基本上<button popover-template="dynamicPopover.templateUrl" popover-title="{{dynamicPopover.title}}" type="button" class="btn btn-default">Popover With Template</button>
这个的指令。由于某种原因,我不得不重载引导程序的定位功能,使其响应,以便我可以在可见的屏幕上显示弹出窗口,
我做了一个功能
scope.getPopoverOnPosition = fucntion {....}
在这个函数中我设置了一个scope.Position变量。
在模板中我正在做"<button popover-template="dynamicPopover.templateUrl" popover-title="{{dynamicPopover.title}}" type="button" popover-placement='{{position}}' class="btn btn-default">Popover With Template</button>"
(指定方向会给出一个相对指向按钮的箭头,并设置弹出窗口的顶部和左侧位置)。
问题是弹出窗口首先打开而且没有方向,然后它会闪烁一次然后就会有方向。
我猜测的是,稍后会调用fucntion并在之前初始化tmeplate。当范围更改时,更改将反映为重新生成DOM。有没有什么方法可以实现这个功能而没有一点儿的陈词滥调?
答案 0 :(得分:0)
我遇到了类似的问题,我认为问题在于您需要在设置位置后手动显示弹出框,而不是使用触发器自动显示:&#39;手动&#39;。
然后定义一个mouseenter和mouseout回调。在mouseenter回调中设置位置并显示弹出窗口并在mouseout回调中隐藏它:
$('...').on('mouseenter', function() {
//set placement then...
$(this).popover('show');
});
$('...').on('mouseout', function() {
$(this).popover('hide');
});
像这样,弹出窗口不会首先自动显示在错误的位置,但只有在定义了位置后才会显示。