如何在 GWTBootstrap 中 refresh/update 弹出窗口?

How to refresh/update Popover in GWTBootstrap?

我使用 GWTBootstrap3 v0.9.1.

我想显示一个 Popover ,其中包含存储在数据库中的内容。因此,当用户第一次将鼠标悬停在一个元素上时,会显示一个带有 Please wait... 信息的 Popover。同时,我从数据库中获取了正确的文本,并想用新内容替换 Popover 的内容。

我认为这段代码可以解决问题:

popover.setContent(newText);
popover.reconfigure();

但它不起作用:弹出窗口消失,不再显示。

我知道 Bootstrap 用户有 solutions,但是当我使用 GWT-Bootstrap 时,我想在 GWT 不使用 jQuery.

在这种情况下,我只是编写本机 javascript 方法 jquery 来实现它。

更好的是,我在 GWT-Bootstrap 库本身中更改它并执行拉取请求,以便将其合并到主仓库中。

我过去曾为 GWT-Bootstrap3 做过类似的事情,它很快就合并到了主仓库中。

我遵循@Knarf 的建议并使用本地方法,因为我找不到纯 GWT 解决方案:

private native void updatePopover(Element element, String popoverHtml, boolean shown) /*-{
    var $popover = $wnd.jQuery(element);
    $popover.data('bs.popover').options.content = popoverHtml;
    if(shown)
        $popover.popover('show');
}-*/;

其中:

  • element 是弹出窗口小部件的元素(具有弹出窗口的元素)
  • popoverHtml为新内容
  • shown表示更新时popover是否可见

我通过 ShowHandler 和 HideHandler 跟踪可见状态:

uiPopover.addShowHandler(new ShowHandler() {
    @Override
    public void onShow(ShowEvent event) {
        popoverVisible = true;
    }
});
uiPopover.addHideHandler(new HideHandler() {
    @Override
    public void onHide(HideEvent event) {
        popoverVisible = false;
    }
});

编辑: 最好使用 ShowHandler 和 HideHandler 而不是 ShownHandler 和 HiddenHandler。

该主题已得到解答,但有 GWT 解决方法。当 isAnimated 属性 为 true 时,重新配置方法无法正常工作。初始化的时候关掉就好了