java - 在 @PostConstruct 中调用 JSNI 方法 - Errai

标签 java twitter-bootstrap gwt postconstruct errai

我在尝试使用 Errai 2.3.2 从 Java 调用 JS 函数时遇到问题 我正在使用 Bootstrap 开关,我需要调用 JS 函数才能激活它。我需要在创建页面并将所有元素附加到 DOM 元素后执行此操作。

我已经尝试了所有这些:@PostConstruct、@PageShowing、@PageShown、onAttach()..但这些都不适合我。

我有这个:

@Override
public void onAttach(){
    enableToggleSwitch();
}

public static native void enableToggleSwitch() /*-{
    $wnd.enableToggle();
}-*/;

当我调试它时,似乎是在将元素附加到 DOM 之前调用 onAttach() 方法。

有什么想法吗?

最佳答案

您不应重写 Widget 类的 onAttach() 方法。如果您想在附加小部件时执行某些操作,请覆盖 onLoad 方法。

  /**
   * This method is called immediately after a widget becomes attached to the
   * browser's document.
   */
  protected void onLoad() {
      enableToggleSwitch();
  }

试试这个。

如果这不能解决您的问题,您可以尝试使用调度程序:

    Scheduler.get().scheduleDeferred(new ScheduledCommand() {
        @Override
        public void execute() {
            enableToggleSwitch();
        }
    });

关于java - 在 @PostConstruct 中调用 JSNI 方法 - Errai,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19987785/

相关文章:

Java Selenium 错误 : NoClassDefFoundError: org/openqa/selenium/HasAuthentication

php - 如何在 Bootstrap 轮播中显示相同大小的图像

java - GWT 还是 Java Web Start?

带表的 GWT MVP

java - 以相同的概率选择三个数字之一?

java - java.util.Calendar 线程是否安全?

java - Java 中类实例作为私有(private)成员

html - Bootstrap 自定义布局

html - 下拉菜单问题

java - GWT时区问题